当使用Chrome浏览器运行WebDriver时,即使浏览器正常启动,也会显示“只允许本地连接”

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

“在端口22582上启动ChromeDriver(v2.10.267521)”“只允许本地连接。

这是我的示例代码:

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驱动)创build一个HTTP服务器,语言绑定(Java,Python,Ruby,.NET等)都使用JSON-over-HTTP协议进行通信与驱动程序,并自动浏览器。 当然,由于HTTP服务器仅仅是侦听由语言绑定生成的HTTP请求的开放端口,所以由语言绑定启动的到HTTP服务器的连接被限制为仅被允许来自同一主机上的其他进程。 请注意,这个限制不适用于浏览器可以连接到外部网站的连接; 而是简单的阻止来自其他网站的传入连接。

我得到了完全相同的错误。 我今天在这个问题上奋斗了几个小时。 这似乎是由于chromedriver和selenium服务器独立版本之间的不匹配造成的。 config.js文件引用了一个有chromedriver 2.9和selenium-server-standalone 2.35.0的目录。 一旦我确定我们参考2.10和2.42.2,它的工作。

当我不得不修复一段时间以来没有看过的旧项目时,就发生了这种情况。 与该项目相关的chromedriver与我的镀铬版本不兼容,所以当我更新镀铬驱动时,它工作正常。

不一定是最好的做法,但我的环境是一个本地networking,有几台机器需要访问selenium。

在运行chromedriver时,可以像这样通过一个参数:

chromedriver --whitelisted-ips=""

这将基本上将所有知识产权列入白名单,当然并不总是一个理想的解决scheme,并且对于生产环境要小心,但是应该给出详细的警告:

在端口9515上启动ChromeDriver 2.16.333244(15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca)允许所有远程连接。 改用白名单!

最好的解决办法,但它的作品。

相对入住

这只是一个信息性消息。 这意味着什么,如果你的testing脚本和chromedriver是在同一台机器上,那么可以添加“whitelisted-ips”选项。你的testing将运行良好。但是,如果你在网格设置中使用chromedriver,这个消息将不会出现

我不得不在同一个terminal上运行我的命令,而不是单独运行。

 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" 

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

Selenium 3.0.1 for Maven项目:

  <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.0.1</version> </dependency> 

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