javascript – 更改代理设置而不关闭Selenium/Splinter中的驱动程序

前端之家收集整理的这篇文章主要介绍了javascript – 更改代理设置而不关闭Selenium/Splinter中的驱动程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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

猜你在找的JavaScript相关文章