【发布时间】:2021-10-24 18:47:36
【问题描述】:
我正在学习硒测试,几个小时后遇到了我的第一个问题:D
目标:在我的 selenium 程序中添加一个代理,这样它就不会直接从我的路由器访问互联网。
(代理-在localhost上运行tor浏览器。与其他网络爬虫顺利配合)
问题是,程序似乎看不到代理设置或绕过它。导航程序到“检查ip”网站显示原始ip,没有被代理更改。
我的代码:[如文档中的 https://www.selenium.dev/documentation/webdriver/http_proxies/]
Proxy proxy = new Proxy();
proxy.setHttpProxy("127.0.0.1:9150");
ChromeOptions options = new ChromeOptions();
options.setCapability("proxy", proxy);
然后我尝试了其他几种在网上找到的方法(包括一种已弃用的方法)
/*String proxy = "127.0.0.1:9150";
ChromeOptions options = new ChromeOptions().addArguments("--proxy-server=http://" +proxy);
*/
/*String proxy = "localhost:9150";
Proxy p = new Proxy();
p.setHttpProxy(proxy);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, p);
*/
然后进入驱动参数(注释的是使用options和cap)
WebDriver driver = new ChromeDriver(options);
使用文档代码我没有收到任何错误。它只是不改变ip。
我尝试了所有我能想到的方法,但没有成功。
注意事项:
- ip 和端口正确
- 设置代理后访问网站。
- 使用注释代码(第一块,两行)在 chrome 中返回“无法访问此站点”,在控制台中返回“org.openqa.selenium.WebDriverException: unknown error: net::ERR_TUNNEL_CONNECTION_FAILED”
- 与注释 3) 相同的代码,但协议更改为 https "...https://" +proxy);" 在浏览器中返回 "No internet" 和 "org.openqa.selenium.WebDriverException: unknown error: net: :ERR_PROXY_CONNECTION_FAILED" 在控制台中
【问题讨论】:
-
您的故障排除,可能已经突出了原因。 3) 表明它无法使用 http 与您的代理创建隧道。 4) 显示使用 https 创建的隧道,但代理连接失败。所以它可能正在寻找某种类型的信用。将此添加到您的原始方法中:
proxy.setSslProxy("127.0.0.1:9150");
标签: java selenium proxy runtime-error