只允许本地连接 Chrome 和 Selenium webdriver

Posted

技术标签:

【中文标题】只允许本地连接 Chrome 和 Selenium webdriver【英文标题】:Only local connections are allowed Chrome and Selenium webdriver 【发布时间】:2016-08-09 08:48:13 【问题描述】:

我正在使用 Chrome 网络驱动程序 2.23 和 Selenium 2.53.1。 我已经尝试了很多,但无法修复它。每当我运行我的 selenium 脚本时,它都会给我以下错误

Starting ChromeDriver 2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129) on port 12162
Only local connections are allowed.

【问题讨论】:

能否请您指定确切的错误消息,浏览器版本详细信息 本身不是错误,即使它可能是红色的。这只是一条信息性消息,告诉您根据配置 Selenium WebDriver 将只接受来自 localhost 的连接。 When running WebDriver with Chrome browser, getting message, "Only local connections are allowed" even though browser launches properly的可能重复 【参考方案1】:

这只是一条信息性消息。您的问题可能是 chromedriver 和 selenium-server-standalone 的版本不匹配。

尝试使用最新的 selenium 3.0 版,它对我有用。

请注意,对于 selenium 3.0,您需要先指定驱动程序,然后再指定 selenium 服务器。

使用新的 selenium,即 3.0,您应该使用:

java -Dwebdriver.chrome.driver=path_to_chrome_driver -jar selenium-server-standalone-3.0.0-beta2.jar 如果您使用低于 3.0 的 selenium 版本,则需要使用驱动程序反转 selenium 的顺序,例如:

java -Dwebdriver.chrome.driver=path_to_chrome_driver -jar selenium_server.jar

在启动selenium server的时候,在chromedriver和selenium server所在的目录下打开一个控制台,执行上面的命令。

【讨论】:

在什么地方需要用到这个命令 java -Dwebdriver.chrome.driver=path_to_chrome_driver -jar selenium-server-standalone-3.0.0-beta2.jar 能解释一下吗。提前致谢 谢谢,这有帮助。这是我的情况的版本不匹配:)【参考方案2】:

这是一个工作堆栈:

之前的一些笔记:

如果您在非图形环境中运行 selenium,则需要 xvfb

您将需要 selenium-server-standalone-2.53.1.jar(工作版本)。你可以在这里下载 selenium 版本:http://selenium-release.storage.googleapis.com/index.html

您还需要 chromedriver v 2.27。下载链接:https://chromedriver.storage.googleapis.com/index.html

1) 运行 sudo Xvfb :10 -ac &

2) 运行 export DISPLAY=:10

3) 运行 java -jar "YOUR_PATH_TO/selenium-server-standalone-2.53.1.jar" -Dwebdriver.chrome.driver="YOUR_PATH_TO/chromedriver.2.27" -Dwebdriver.chrome.whitelistedIps="localhost "

【讨论】:

如果您在图形环境中,第 3 步也可以。您甚至不需要 whitelistedIps 标志。谢谢!【参考方案3】:

首先,您所看到的不是错误。这是一条信息性消息。

当您运行此驱动程序时,它将使您的脚本能够访问此驱动程序并在 Google Chrome 上运行命令。

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

如果您希望允许所有连接而不仅仅是本地连接,请参阅this answer。


如果您的 Chrome 驱动程序仅显示上述两条消息(根据问题),则存在问题。它必须显示这样的消息,表明它已成功启动。

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.

要解决此问题...

第 1 步:检查您的 Chrome 驱动程序版本

$ chromedriver --version

ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@#416)

我的版本是83.0.4103.39

第 2 步:检查您的 Chrome 浏览器版本

打开谷歌浏览器。

Options --> Help --> About Google Chrome

或打开终端并运行以下命令(适用于 Ubuntu)。

$ google-chrome --version

Google Chrome 83.0.4103.61

我的版本是:版本 83.0.4103.61

第 3 步:比较 Chromedriver 和 Google Chrome 的版本

这两个版本都以 83 开头,这意味着它们都是兼容的。因此,当您运行以下命令时,您应该会看到如下所示的消息。

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

如果您的版本不匹配,您将看到以下消息。你不会看到写着ChromeDriver was started successfully.的行。

$ chromedriver

Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@#882) on port 9515
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

第 4 步:下载正确版本的 Chromedriver

下载与您的浏览器版本匹配的正确版本。使用this page for downloads。下载后,解压缩内容,并将其移动到以下两个文件夹之一。打开以下两个文件夹中的每一个,看看您当前的 Chromedriver 是否在那里。如果它在两个文件夹上,请同时替换它们。然后再次执行第 3 步。

/usr/bin/chromedriver
/usr/local/bin/chromedriver

【讨论】:

【参考方案4】:

    检查您安装的 Chrome 浏览器的版本。

    下载兼容版本的ChromeDriver

    https://sites.google.com/a/chromium.org/chromedriver/

    将兼容的ChromeDriver的位置设置为:

     System.setProperty("webdriver.chrome.driver", "C:\\Users\\your_path\\chromedriver.exe");
    

    再次运行测试。

现在应该好了。

【讨论】:

【参考方案5】:

您需要将--whitelisted-ips= 传递给chrome 驱动程序(不是chrome!)。如果您从代码中本地/直接使用 ChromeDriver(不使用 RemoteWebDriver),那应该不是您的问题。

如果您远程使用它(例如 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=

【讨论】:

【参考方案6】:

我遵循了我的建议,它对我来说就像一颗宝石:

工作代码:

1) 已下载 chromedriver。

2) 代码是

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class Sel 
  public static void main(String[] args) 
    // TODO Auto-generated method stub
    System.setProperty("webdriver.chrome.driver", "C:\\Users\\Downloads\\chromedriver_win32\\chromedriver.exe"); // path of chromedriver 
    WebDriver driver = new ChromeDriver();

      driver.get("https://google.ca");
      driver.manage().window().maximize();
      driver.getTitle();

  

【讨论】:

【参考方案7】:

对我来说,更新 chromedriverselenium version 删除了这条消息。

但是,这不是实际错误,只是一条信息性消息。 如果即使打印此消息,您的程序最后仍以exit code 0 传递,则表示执行正常。

【讨论】:

【参考方案8】:

我能够通过以下步骤解决问题: 一种。升级到最新的chrome版本,清除缓存并关闭chrome浏览器 湾。下载最新的 Selenium 3.0

【讨论】:

【参考方案9】:

C#:

    ChromeOptions options = new ChromeOptions();

    options.AddArgument("C:/Users/username/Documents/Visual Studio 2012/Projects/Interaris.Test/Interaris.Tes/bin/Debug/chromedriver.exe");

    ChromeDriver chrome = new ChromeDriver(options);

为我工作。

【讨论】:

【参考方案10】:

对不起,迟到的帖子,但仍然是信息,我也面临同样的问题,所以我使用更新版本的 chromedriver ie.2.28 更新 chrome 浏览器,即。 55 到 57 解决了我的问题。

【讨论】:

【参考方案11】:

我也遇到了同样的问题。我通过更新 chromedriver 解决了这个问题。因此,如果有人遇到与 chrome 浏览器相同的问题,只需更新您的 chromedriver。

【讨论】:

【参考方案12】:

我看到了这个错误

Only local connections are allowed

我更新了 selenium webdriver 和 google-chrome-stable

webdriver-manager update
zypper install google-chrome-stable

本站报告最新版chrome驱动 https://sites.google.com/a/chromium.org/chromedriver/

我的工作版本是 chromedriver 2.41 和 google-chrome-stable 68

【讨论】:

以上是关于只允许本地连接 Chrome 和 Selenium webdriver的主要内容,如果未能解决你的问题,请参考以下文章

如何在 selenium Firefox/Chrome 中使用 SOCKS5

Chrome 操作系统不允许从远程计算机连接

自动化测试selenium+python+chrome 连接测试

selenium测试-open chrome

本地主机拒绝连接,从贝宝沙箱返回后

Chrome浏览器本地安装插件