只允许本地连接Chrome和Selenium webdriver

时间:2016-08-09 08:48:13

标签: selenium selenium-webdriver selenium-chromedriver

我正在使用Chrome webdriver 2.23&硒2.53.1 我已经尝试了很多,但无法解决这个问题,每当我运行我的selenium脚本时它会给我错误

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

12 个答案:

答案 0 :(得分:10)

这只是一条信息性消息。您的问题可能是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的硒版本,则需要使用驱动程序颠倒硒的顺序,例如:

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

当你启动selenium服务器时,在chromedriver和selenium服务器的目录中打开一个控制台并执行上面的命令。

答案 1 :(得分:6)

这是一个工作堆栈:

之前的一些说明:

1)运行 sudo Xvfb:10 -ac&

2)运行导出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 “

答案 2 :(得分:4)

  1. 检查已安装的Chrome浏览器的版本。

  2. 下载兼容版ChromeDriver

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

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

    System.setProperty("webdriver.chrome.driver", "C:\\Users\\your_path\\chromedriver.exe");
    
  4. 再次运行测试。

  5. 现在应该很好。

答案 3 :(得分:3)

首先,您看到的不是错误。这是一条参考消息。

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

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

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


如果您的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.

要解决此问题...

第1步:检查您的Chromedriver版本

$ chromedriver --version

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

我的版本是83.0.4103.39

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

打开Goog​​le Chrome。

Options --> Help --> About Google Chrome

enter image description here

或者打开终端并运行以下命令(在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 :(得分:2)

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

工作代码:

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();

  }
}

答案 5 :(得分:2)

对我来说,更新 chromedriver 版本会删除此消息。

但是,这不是实际错误,只是参考消息。 如果即使打印此消息,您的程序仍在末尾传递exit code 0,则表示执行正常。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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);

为我工作。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

我看到了这个错误

Only local connections are allowed

我同时更新了硒Web驱动程序和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

答案 11 :(得分:0)

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

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

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

或通过传递JAVA_OPTS env

的docker
  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=