只允许本地连接 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 浏览器的版本。
从
下载兼容版本的ChromeDriverhttps://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】:对我来说,更新 chromedriver 和 selenium 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