【问题标题】:Selenium : Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious codeSelenium : 请保护 ChromeDriver 和相关测试框架使用的端口,防止恶意代码访问
【发布时间】:2019-08-21 05:34:30
【问题描述】:

我通过本地机器连接到 VPN 并尝试在 chrome 浏览器上执行 selenium 脚本,然后我收到以下错误:

Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1553947986.711][WARNING]: Timed out connecting to Chrome, retrying...
[1553947990.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553947998.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553948014.713][WARNING]: Timed out connecting to Chrome, giving up.
[1553948016.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948020.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948028.727][WARNING]: Timed out connecting to Chrome, retrying...
[1553948044.730][WARNING]: Timed out connecting to Chrome, giving up.

只有当我想通过 VPN 执行脚本时才会发生这种情况, 没有 VPN,脚本工作正常。对于火狐浏览器不是 遇到上述问题

【问题讨论】:

  • 你在使用网格来执行吗?
  • @supputuri:不,我们没有使用网格
  • 似乎是某些安全应用程序/防火墙设置在您使用 VPN 时阻止了连接。检查连接VPN时是否有任何安全应用程序运行,尝试禁用它并查看。如果可行,请联系 VPN 组并请他们帮助打开 selenium 连接。
  • 没有它的VPN,我已经尝试降级、升级、匹配已安装的google-chrome 版本但没有工作。如果它为您解决,请分享。
  • @paul : 当然,会通知你

标签: java windows selenium selenium-chromedriver vpn


【解决方案1】:

自上周以来,我也遇到了这个问题。我搜索了很多并尝试了不同的方法来解决这个问题。下面的代码(伪代码)帮助我解决了这个问题。 我的方法:

  1. 运行 chromedriver.exe 服务器并检查端口号(我在代码中使用了 Process 类) 首先通过以下步骤手动检查:
    • 打开命令提示符
    • 导航到您拥有 chromedriver 的路径
    • 运行 chromedriver(只需键入 >chromedriver )
    • chromedriver 服务器将开始运行,注意端口号(在我的情况下为 9515)
  2. 使用 url (http://localhost:portNumber) 初始化驱动程序
  3. 通常的东西(最大化、超时、导航到 url)
  4. 编写测试脚本
  5. 关闭驱动实例(driver.close())
  6. 关闭流程实例(process.destroy())

    try { process = new ProcessBuilder("path of the chromedriver.exe").start(); } catch (IOException e1) { e1.printStackTrace(); } System.setProperty("webdriver.chrome.driver", "path of the chromedriver.exe"); ChromeOptions options = new ChromeOptions(); try { driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"), options); } catch (MalformedURLException e) { e.printStackTrace(); } // maximize browser // delete All Cookies // page Load Timeout // implicitly Wait // navigating to the url // run the test scripts // close the driver // close the process

希望它也能解决您的问题。如果您遇到任何问题,请告诉我。

【讨论】:

    【解决方案2】:
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--whitelist-ip *");
    chromeOptions.addArguments("--proxy-server='direct://'");
    chromeOptions.addArguments("--proxy-bypass-list=*");
    WebDriver driver = new ChromeDriver(chromeOptions);
    

    您也可以在此处指定 IP 地址。

    【讨论】:

    • 感谢您的回答...会检查并通知您
    【解决方案3】:

    禁用 IPv6 为我解决了这个问题。 在 macOS 上:networksetup -setv6off Wi-Fi

    我还必须从我的 hosts 文件中删除 ::1 localhost

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 2019-08-21
      • 2022-01-21
      • 1970-01-01
      • 2018-02-19
      • 2020-08-15
      • 1970-01-01
      相关资源
      最近更新 更多