微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-Selenium Chromedriver服务器超时,尽管可用

我有一个Java Selenium项目,该项目不会在我的计算机上运行,​​但会在具有相同OS版本(OSX 10.13.1),Chrome浏览器版本(63.0.3239.84)和chromedriver版本(2.34)的同事的计算机上运行.我收到消息:

Starting ChromeDriver 2.34.522932 (4140ab217e1ca1bec0c4b4d1b148f3361eb3a03e) on port 18633
Only local connections are allowed.

org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'localhost', ip: 'fe80:0:0:0:1cc9:e0ab:f4e5:dd34%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.1', java.version: '1.8.0_20'
Driver info: driver.version: ChromeDriver
...
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:18633/status] to be available after 20005 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
    ... 28 more
Caused by: java.util.concurrent.TimeoutException
    at java.util.concurrent.FutureTask.get(FutureTask.java:205)
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:149)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    ... 29 more

但是,当我在浏览器中打开http://localhost:18633/status时,我得到一个有效的响应:

{"sessionId":"","status":0,"value":{"build":{"version":"alpha"},"os":{"arch":"x86_64","name":"Mac OS X","version":"10.13.1"}}}

我试过换出chromedriver二进制文件,但我不确定自己还能做什么.我在geckodriver上遇到类似的问题,但这可能是相同的问题,也可能不是.
我还尝试过在系统上创建一个新用户,并使用该帐户运行该用户,以适应用户设置-祝您好运.

在这里想念什么?什么信息将有助于调试此问题?

解决方法:

错误说明了一切:

org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.

清楚表明WebDriver实例未启动.因此,驱动程序信息保留为空白:

Driver info: driver.version: ChromeDriver

一个会产生org.openqa.selenium.net.UrlChecker $TimeoutException和java.util.concurrent.TimeoutException

很难猜测没有代码块可见性的实际原因,但是通常我们可以通过从link下载chromedriver二进制文件并在初始化WebDriver实例时传递chromedriver的绝对路径解决此问题,如下所示:

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
driver = new ChromeDriver();

关键点 :

>始终使用最新的Selenium Client ChromeDriver版本.
>始终保持启用浏览器的自动更新
>始终保持JDK版本更新(当前版本为JDK 8u152)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐