【问题标题】:Selenium & Java - specified proxy ignoredSelenium 和 Java - 指定的代理被忽略
【发布时间】: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);
*/

然后进入驱动参数(注释的是使用optionscapWebDriver driver = new ChromeDriver(options);

使用文档代码我没有收到任何错误。它只是不改变ip。

我尝试了所有我能想到的方法,但没有成功。

注意事项:

  1. ip 和端口正确
  2. 设置代理后访问网站。
  3. 使用注释代码(第一块,两行)在 chrome 中返回“无法访问此站点”,在控制台中返回“org.openqa.selenium.WebDriverException: unknown error: net::ERR_TUNNEL_CONNECTION_FAILED”
  4. 与注释 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


【解决方案1】:

您的故障排除可能已经突出了原因。 3) 表明它无法使用 http 与您的代理创建隧道。 4) 显示使用 https 创建的隧道,但代理连接失败。所以它可能正在寻找某种类型的信用。

更新您的代码以添加 SSL 代理:

Proxy proxy = new Proxy();
proxy.setHttpProxy("127.0.0.1:9150");
proxy.setSslProxy("127.0.0.1:9150");
ChromeOptions options = new ChromeOptions();
options.setCapability("proxy", proxy);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多