我正在使用Chrome webdriver 2.23和Selenium 2.53.1。
我尝试了很多次,但无法解决问题。每当我运行我的Selenium脚本时,它都会给我以下错误:
Starting ChromeDriver 2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129) on port 12162
Only local connections are allowed.
我正在使用Chrome webdriver 2.23和Selenium 2.53.1。
我尝试了很多次,但无法解决问题。每当我运行我的Selenium脚本时,它都会给我以下错误:
Starting ChromeDriver 2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129) on port 12162
Only local connections are allowed.
这只是一条信息提示,你的问题可能是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服务器时,请在包含chromedriver和selenium服务器的目录中打开控制台并执行上述命令。
下面是一个可用的技术栈:
一些注意事项:
如果您在非图形环境下运行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”
首先,您看到的不是错误,而是信息提示。
运行此驱动程序后,它将使您的脚本能够访问并在Google Chrome上运行命令。
这可以通过在本地网络中运行的脚本 (只允许本地连接
) 或在外部网络中运行的脚本 (允许所有远程连接
) 来完成。使用本地连接选项始终更安全。默认情况下,您的Chromedriver可通过端口9515
进行访问。
如果您希望允许所有连接而不仅仅是本地连接,请参见 this answer。
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 --version
ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416})
我的版本是83.0.4103.39
。
步骤2:检查您的Chrome浏览器版本
打开Google Chrome。
Options --> Help --> About Google Chrome
或者打开终端并运行以下命令(适用于Ubuntu)。
$ google-chrome --version
Google Chrome 83.0.4103.61
$ 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.
第四步:下载正确版本的Chromedriver
下载与您的浏览器版本相匹配的正确版本。使用此页面进行下载。下载完成后,提取内容并将其移动到以下两个文件夹之一。打开以下两个文件夹,并查看当前的Chromedriver是否在其中。如果它在两个文件夹中都有,请替换两个。然后再执行第三步。
/usr/bin/chromedriver
/usr/local/bin/chromedriver
Check the version of your installed Chrome browser.
Download the compatible version of ChromeDriver from
Set the location of the compatible ChromeDriver to:
System.setProperty("webdriver.chrome.driver", "C:\\Users\\your_path\\chromedriver.exe");
Run the Test again.
--whitelisted-ips=
传递给Chrome Driver(而不是Chrome!),如果你从代码中直接使用ChromeDriver(而不是使用RemoteWebDriver),那么这不应该成为你的问题。java -Dwebdriver.chrome.whitelistedIps= testClass etc...
或者通过传递JAVA_OPTS
环境变量来使用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=
我按照我的朋友建议尝试了以下方法,对我非常有效:
代码如下:
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();
}
}
对于我来说,更新chromedriver和selenium的版本就解决了这个问题。
然而,这只是一条信息提示,并不是真正的错误。
如果你的程序在打印出这条信息后仍然以 exit code 0
的形式通过,那么说明执行是正常的。
我按照以下步骤解决了问题: a. 升级到最新的Chrome版本,清除缓存并关闭Chrome浏览器 b. 下载最新的Selenium 3.0
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);
对我有用。
抱歉回复晚了,但是仍然想让您知道,我也遇到了同样的问题,所以我使用了更新版本的chromedriver,即2.28,适用于更新的chrome浏览器,即55到57版本,这解决了我的问题。