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

When running WebDriver with Chrome browser, getting message, “Only local connections are allowed” even though browser launches properly

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

"Starting ChromeDriver (v2.10.267521) on port 22582""Only local
connections are allowed."

这是我的示例代码:

1
2
3
4
5
6
7
8
9
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();
    }
}

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

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


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


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

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

chromedriver --whitelisted-ips=""

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

Starting ChromeDriver 2.16.333244
(15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) on port 9515 All remote
connections are allowed. Use a whitelist instead!

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

相对值机


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


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


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

用于Maven项目的Selenium 3.0.1:

1
2
3
4
5
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        selenium-java</artifactId>
        <version>3.0.1</version>
    </dependency>

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


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

1
2
3
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"

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

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

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

下面给出了两个选项。

1
2
3
4
5
6
$ 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列入白名单。

1
2
3
4
5
6
$ 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.

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

  • 导航到seleniumhq.org网站
  • 选择下载选项卡
  • 向下滚动页面至浏览器部分,然后单击链接下载所需的驱动程序,例如Google Chrome驱动程序
  • 双击下载的文件,例如chromedriver_mac64(1).zip
  • 双击提取的文件,例如chromedriver
  • 参考:在YouTube.com上搜索错误

    平台:macOS High Sierra 10.13.3