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

Changing Proxy Settings without Closing the Driver in Selenium/Splinter

在旧版本的 Splinter/Selenium this was said not to be possible. This answer a few years later claims it , but this code doens't work for me (I might have just failed to translate it to Python). This answer closes 浏览器中,然后重新打开它,我需要 window/browser 保持打开状态。

使用像 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:感谢