使用Chrome浏览器运行WebDriver时,获取消息,"仅允许本地连接"即使浏览器正常启动

时间:2014-08-01 12:40:09

标签: google-chrome webdriver selenium-chromedriver

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

11 个答案:

答案 0 :(得分:85)

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

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

答案 1 :(得分:11)

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

答案 2 :(得分:8)

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

当运行chromedriver时,你可以像这样通过一个参数:

chromedriver --whitelisted-ips=""

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

  

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

充其量只是解决方法,但它有效。

Relative check-in

答案 3 :(得分:4)

当我不得不修复一段时间没有看过的旧项目时,发生了这种情况。与该项目相关的chromedriver与我的chrome版本不兼容,因此当我更新chromedriver时它运行良好。

答案 4 :(得分:1)

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

答案 5 :(得分: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

答案 6 :(得分:1)

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

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

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

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

 set(TARGET_NAME program)
 file(GLOB_RECURSE FILES *.c)
 add_executable(${TARGET_NAME} ${FILES})
 file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})
 set_target_properties(${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY             
 ${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})

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

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

或通过传递java -Dwebdriver.chrome.whitelistedIps= testClass etc... env

的docker
JAVA_OPTS

答案 7 :(得分:0)

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

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"

答案 8 :(得分:0)

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

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

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

下面给出了两个选项。

$ 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.

答案 9 :(得分:0)

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

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

chrome://settings/help

答案 10 :(得分:-1)

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

  1. 将浏览器导航至seleniumhq.org网站
  2. 选择“下载”标签
  3. 向下滚动页面到浏览器部分,然后点击链接下载所需的驱动程序,例如Google Chrome驱动程序
  4. 双击下载的文件,例如chromedriver_mac64(1).zip
  5. 双击解压缩的文件,例如chromedriver
  6. 参考:在YouTube.com上搜索错误

    平台:macOS High Sierra 10.13.3