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

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面