在Splinter / Selenium
this was said not to be possible的旧版本中.几年后这个答案声称它是
is possible with JavaScript,但这段代码对我不起作用(我可能只是将它翻译成Python).
This answer closes浏览器然后重新打开它,我需要窗口/浏览器保持打开状态.
使用像FoxyProxy这样的插件,它很容易即时更改代理,但我不认为Selenium可以与插件交互,因为它们是页面元素?
由于Splinter被设计为Selenium的一个不那么详细的包装器,如果有一个简单的方法可以实现这一点,那将是非常棒的.话虽如此,任何黑客只是拥有这个功能将不胜感激.
解决方法
您需要像下面一样使用它
browser.visit("about:config") script = """ var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); prefs.setIntPref("network.proxy.type",1); prefs.setCharPref("network.proxy.http","{0}"); prefs.setIntPref("network.proxy.http_port","{1}"); prefs.setCharPref("network.proxy.ssl","{0}"); prefs.setIntPref("network.proxy.ssl_port","{1}"); prefs.setCharPref("network.proxy.ftp","{0}"); prefs.setIntPref("network.proxy.ftp_port","{1}"); """ browser.execute_script(script.format("ProxyIP","PORT"))
PS:积分到Python Selenium Webdriver – Changing proxy settings on the fly