gpt4 book ai didi

firefox - 使用 Selenium webdriver 动态更改 Firefox 中的代理

转载 作者:行者123 更新时间:2023-12-02 10:23:12 24 4
gpt4 key购买 nike

使用 selenium webdriver 时有什么方法可以动态更改 Firefox 使用的代理吗?

目前我有使用代理配置文件的代理支持,但是有没有办法在浏览器处于事件状态并运行时更改代理?

我当前的代码:

proxy = Proxy({
'proxyType': 'MANUAL',
'httpProxy': proxy_ip,
'ftpProxy': proxy_ip,
'sslProxy': proxy_ip,
'noProxy': '' # set this value as desired
})
browser = webdriver.Firefox(proxy=proxy)

提前致谢。

最佳答案

这是一个有点老的问题。但实际上可以通过“黑客方式”动态更改代理我将在 Firefox 中使用 Selenium JS,但您可以按照您想要的语言进行操作。

第 1 步:访问“about:config”

driver.get("about:config");

第 2 步:运行更改代理的脚本

var setupScript=`var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);

prefs.setIntPref("network.proxy.type", 1);
prefs.setCharPref("network.proxy.http", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.http_port", "${proxyUsed.port}");
prefs.setCharPref("network.proxy.ssl", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.ssl_port", "${proxyUsed.port}");
prefs.setCharPref("network.proxy.ftp", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.ftp_port", "${proxyUsed.port}");
`;

//running script below
driver.executeScript(setupScript);

//sleep for 1 sec
driver.sleep(1000);

其中 use ${abcd} 是放置变量的位置,在上面的示例中,我使用 ES6 处理连接,如图所示,您可以使用您选择的其他连接方法,具体取决于您的语言。

第 3 步::访问您的网站

driver.get("http://whatismyip.com");

说明:上面的代码利用 Firefox 的 API 使用 JavaScript 代码更改首选项。

关于firefox - 使用 Selenium webdriver 动态更改 Firefox 中的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com