【问题标题】:When running WebDriver with Chrome browser, getting message, "Only local connections are allowed" even though browser launches properly使用 Chrome 浏览器运行 WebDriver 时,即使浏览器正常启动,也会收到消息“仅允许本地连接”
【发布时间】:2014-09-24 16:09:18
【问题描述】:

当我使用 WebDriver 运行 Chrome 浏览器时,我在控制台上收到以下消息。请让我知道如何解决它。

"在端口 22582 上启动 ChromeDriver (v2.10.267521)" "仅本地 允许连接。”

这是我的示例代码:

public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}

【问题讨论】:

    标签: google-chrome webdriver selenium-chromedriver


    【解决方案1】:

    这只是一条信息性消息。该消息告诉您的是 chromedriver 可执行文件将只接受来自本地计算机的连接。

    大多数驱动程序实现(当然是 Chrome 驱动程序和 IE 驱动程序)都会创建一个 HTTP 服务器。语言绑定(Java、Python、Ruby、.NET 等)都使用 JSON-over-HTTP 协议与驱动程序通信并使浏览器自动化。由于 HTTP 服务器只是在一个开放端口上侦听由语言绑定生成的 HTTP 请求,因此由语言绑定启动的与 HTTP 服务器的连接只允许来自同一主机上的其他进程。请注意,此限制不适用于 浏览器 可以与外部网站建立的连接;相反,它只是阻止来自其他网站的传入连接。

    【讨论】:

    • 在我的情况下,打开浏览器后测试停止并且页面为空。在 url Not secure data:, 所以从这个意义上说这是一个问题。你知道为什么吗?
    • 因此,如果我使用 driver.get(etc...) 访问使用 https 与 selenium 通信的网站,这是否意味着发送到该网站的信息已使用 https 加密?
    • 此答案中提到的 HTTP(不安全)通信是在语言绑定(Java、C#、Python 等中的 Selenium 代码)和浏览器驱动程序(chromedriver、geckodriver 等)之间进行的。 )。浏览器和网站之间的通信没有改变。如果您在浏览器中使用 HTTPS,则浏览器与 Web 服务器之间的通信仍应加密。
    • 我也有同样的问题 :/ 这个问题曾经解决过吗?
    【解决方案2】:

    不一定是最佳实践,但我的环境是一个本地网络,其中有几台需要访问 selenium 的机器。

    运行 chromedriver 时,您可以像这样传递参数:

    chromedriver --whitelisted-ips=""

    这基本上会将所有 IP 列入白名单,当然,这并不总是一个理想的解决方案,并且在生产环境中要小心,但您应该会收到一个详细的警告:

    启动 ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) 在端口 9515 所有远程 允许连接。请改用白名单!

    充其量是一种解决方法,但它确实有效。

    Relative check-in

    【讨论】:

      【解决方案3】:

      我得到了完全相同的错误。我今天与这个问题争论了几个小时。这似乎是由 chromedriver 和 selenium-server-standalone 的版本不匹配引起的。 config.js 文件引用了一个包含 chromedriver 2.9 和 selenium-server-standalone 2.35.0 的目录。一旦我确定我们引用的是 2.10 和 2.42.2,它就起作用了。

      【讨论】:

        【解决方案4】:

        当我不得不修复一个很久没有看过的旧项目时,这发生在我身上。与该项目关联的 chromedriver 与我的 chrome 版本不兼容,因此当我更新 chromedriver 时它运行良好。

        【讨论】:

          【解决方案5】:

          这只是一条信息性消息。如果您的测试脚本和 chromedriver 在同一台机器上,则没有任何意义,那么可以添加“whitelisted-ips”选项。您的测试将运行良好。但是,如果您在网格设置中使用 chromedriver,则不会出现此消息

          【讨论】:

          • 我该如何添加这个兄弟 - “whitelisted-ips”。我也有同样的问题
          • 如何添加白名单-ips。我正在使用窗户。谢谢
          【解决方案6】:

          Chromedriver 是一个 WebDriver。 WebDriver 是一个开源工具,用于跨许多浏览器自动测试 Web 应用程序。它提供了导航到网页、用户输入、JavaScript 执行等功能。当您运行此驱动程序时,它将使您的脚本能够访问此驱动程序并在 Google Chrome 上运行命令。

          这可以通过在本地网络中运行的脚本 (Only local connections are allowed.) 或通过在外部网络中运行的脚本 (All remote connections are allowed.) 来完成。使用本地连接选项总是更安全。默认情况下,您的 Chrome 驱动程序可通过端口 9515 访问。

          要回答这个问题,这只是一条信息性消息。您不必担心。

          下面给出了两个选项。

          $ chromedriver
          
          Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
          Only local connections are allowed.
          Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
          ChromeDriver was started successfully.
          

          这是通过将所有 IP 列入白名单。

          $ chromedriver --whitelisted-ips=""
          
          Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
          All remote connections are allowed. Use a whitelist instead!
          Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
          ChromeDriver was started successfully.
          

          【讨论】:

            【解决方案7】:

            经过数小时的分析,阅读大量日志和源代码,终于发现了问题。而且很容易解决。

            在单行中:您需要将 --whitelisted-ips= 传递给 chrome 驱动程序(不是 chrome!)可执行文件

            您可以通过以下几种方式做到这一点:

            如果您在本地/直接从代码中使用 ChromeDriver,只需在 ChromeDriver init 之前插入以下行

                System.setProperty("webdriver.chrome.whitelistedIps", "");
            

            如果您远程使用它(例如 selenium hub/grid),您需要在节点启动时设置系统属性,如在命令中:

            java -Dwebdriver.chrome.whitelistedIps= testClass etc...
            

            或通过传递JAVA_OPTS env 来码头工人

              chrome:
                image: selenium/node-chrome:3.141.59
                container_name: chrome
                depends_on:
                  - selenium-hub
                environment:
                  - HUB_HOST=selenium-hub
                  - HUB_PORT=4444
                  - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
            

            【讨论】:

              【解决方案8】:

              我必须在同一个终端中运行我的命令,而不是单独运行。

              nohup sudo Xvfb :10 -ac
              export DISPLAY=:10
              java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"
              

              【讨论】:

                【解决方案9】:

                如果您使用不兼容的 Selenium 和 ChromeDriver 版本,通常会出现此错误。

                用于 Maven 项目的 Selenium 3.0.1:

                    <dependency>
                        <groupId>org.seleniumhq.selenium</groupId>
                        <artifactId>selenium-java</artifactId>
                        <version>3.0.1</version>
                    </dependency>
                

                ChromeDriver 2.27:https://sites.google.com/a/chromium.org/chromedriver/downloads

                【讨论】:

                • 你应该解释他如何解决他的问题。您只是确定了问题,但如何解决呢?例如,哪些版本是兼容的?
                • 我用这个组合:selenium-java 3.0.1 + ChromeDriver 2.27(它支持Chrome v54-56)
                【解决方案10】:

                遇到了同样的问题,通过从以下位置获取适当的 webdriver 解决了它: https://chromedriver.chromium.org/downloads

                您可以通过输入链接了解您的chrome浏览器的确切版本:

                chrome://settings/help
                

                【讨论】:

                  【解决方案11】:

                  我通过安装浏览器驱动解决了这个错误:

                  1. 将浏览器导航到 seleniumhq.org 网站
                  2. 选择下载选项卡
                  3. 向下滚动页面至浏览器部分并通过点击链接下载所需的驱动程序,例如 Google Chrome 驱动程序
                  4. 双击下载的文件,例如chromedriver_mac64(1).zip
                  5. 双击解压后的文件,例如chromedriver

                  参考:在 YouTube.com 中搜索错误

                  平台:macOS High Sierra 10.13.3

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2021-05-16
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-11-22
                    • 1970-01-01
                    • 2015-07-28
                    • 2021-11-23
                    相关资源
                    最近更新 更多