在 Selenium 期间更改代理服务器
Changing the proxy server during Selenium
所以一切正常
fp = webdriver.FirefoxProfile()
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", int(PROXY_PORT))
fp.update_preferences()
driver = webdriver.Firefox(firefox_profile=fp)
但是如果已经创建了驱动,则无法安装代理。
没用
driver = webdriver.Firefox()
driver.profile.set_preference("network.proxy.type", 1)
driver.profile.set_preference("network.proxy.http", PROXY_HOST)
driver.profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
driver.profile.update_preferences()
也是如此。
driver = webdriver.Firefox()
driver.firefox_profile.set_preference("network.proxy.type", 1)
driver.firefox_profile.set_preference("network.proxy.http", PROXY_HOST)
driver.firefox_profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
driver.firefox_profile.update_preferences()
为什么?不能理解。
我做错了什么?
在 Firefox 中使用 WebDriver 时,配置文件的使用是一次性的。当驱动程序启动浏览器时,它会将配置文件对象写入磁盘,然后启动浏览器可执行文件。在那之后,浏览器就没有机制可以读取对 WebDriver 配置文件对象的任何进一步更改。要更改代理,您必须在启动浏览器之前在配置文件中进行设置。
所以一切正常
fp = webdriver.FirefoxProfile()
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", int(PROXY_PORT))
fp.update_preferences()
driver = webdriver.Firefox(firefox_profile=fp)
但是如果已经创建了驱动,则无法安装代理。 没用
driver = webdriver.Firefox()
driver.profile.set_preference("network.proxy.type", 1)
driver.profile.set_preference("network.proxy.http", PROXY_HOST)
driver.profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
driver.profile.update_preferences()
也是如此。
driver = webdriver.Firefox()
driver.firefox_profile.set_preference("network.proxy.type", 1)
driver.firefox_profile.set_preference("network.proxy.http", PROXY_HOST)
driver.firefox_profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
driver.firefox_profile.update_preferences()
为什么?不能理解。 我做错了什么?
在 Firefox 中使用 WebDriver 时,配置文件的使用是一次性的。当驱动程序启动浏览器时,它会将配置文件对象写入磁盘,然后启动浏览器可执行文件。在那之后,浏览器就没有机制可以读取对 WebDriver 配置文件对象的任何进一步更改。要更改代理,您必须在启动浏览器之前在配置文件中进行设置。