在Chrome浏览器中运行WebDriver时,即使浏览器正常启动,也会出现消息“仅允许本地连接”


85

当我使用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();
    }
}

Answers:


96

这仅是参考消息。该消息告诉您,chromedriver可执行文件将仅接受来自本地计算机的连接。

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


就我而言,打开浏览器后测试停止,页面为空。在urlNot secure data:, 中,从这个意义上讲,这是一个问题。你知道为什么吗
SMPH

因此,如果我访问一个使用driver.get(etc ...)与硒进行https通信的网站,这是否意味着发送到该网站的信息已通过https加密?
Mike Sandstrom

此答案中提到的HTTP(非安全)通信是在语言绑定(您使用Java,C#,Python等的Selenium代码)和浏览器驱动程序(chromedriver,geckodriver等)之间进行的。浏览器与网站之间的通信保持不变。如果在浏览器中使用HTTPS,则浏览器和Web服务器之间的通信仍应加密。
JimEvans

我有同样的问题:/这个问题曾经解决过吗?
user3430861

13

我得到了完全相同的错误。我今天在这个问题上解决了几个小时。这似乎是由于chromedriver版本与selenium-server-standalone版本之间不匹配所致。config.js文件引用的目录具有chromedriver 2.9和selenium-server-standalone 2.35.0。一旦我确定我们引用了2.10和2.42.2,它就会起作用。


13

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

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

chromedriver --whitelisted-ips=""

基本上,这将所有IP列入白名单,当然并非总是理想的解决方案,并且在生产环境中要谨慎使用它,但是应向您显示详细警告:

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

最好的解决方法是,但它可以工作。

相对值机


5

当我不得不修复一个久违的老项目时,这种情况正在发生。与该项目相关联的chromedriver与我的chrome版本不兼容,因此当我更新chromedriver时,它可以正常工作。


3

这仅是参考消息。如果您的测试脚本和chromedriver在同一台计算机上,则没有任何意义,则可以添加“ whitelisted-ips”选项。您的测试将正常运行。但是,如果您在网格设置中使用chromedriver,则不会显示此消息


3
我如何添加此兄弟-“ whitelisted-ips”。我遇到了同样的问题
Tanvir

2
如何添加白名单-ips。我正在使用Windows。谢谢
garlapak '19

1

我必须在同一终端上运行命令,而不是分别运行。

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"

1

如果您使用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


1
您应该解释他如何解决他的问题。您只是发现问题,但如何解决呢?例如,哪些版本是兼容的?
Sebi

1
我使用以下组合:selenium-java 3.0.1 + ChromeDriver 2.27(它支持Chrome v54-56)
Vitali Nikolaenko

1

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

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

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

如果您在本地/直接通过代码使用ChromeDriver,只需在ChromeDriver初始化之前在下面插入行

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

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

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

或docker通过传递JAVA_OPTSenv

  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=

0

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

这可以通过在本地网络中运行的脚本(Only local connections are allowed.)或通过在外部网络中运行的脚本(All remote connections are allowed.)来完成。使用“本地连接”选项总是更安全。默认情况下,您可以通过port访问Chromedriver 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.

-4

我通过安装浏览器驱动程序解决了此错误:

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

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

平台:macOS High Sierra 10.13.3

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.