Java 尽管可用,Selenium Chromedriver服务器仍超时
我有一个Java Selenium项目,它不会在我的机器上运行,但会在同事的机器上运行,并且具有相同的操作系统版本(OSX 10.13.1)、Chrome浏览器版本(63.0.3239.84)和chromedriver版本(2.34)。我得到的信息是:Java 尽管可用,Selenium Chromedriver服务器仍超时,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我有一个Java Selenium项目,它不会在我的机器上运行,但会在同事的机器上运行,并且具有相同的操作系统版本(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 allow
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
但是,当我在浏览器中打开时,会得到有效的响应:
{"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.
显然表明该实例未被启动。因此,驾驶员信息保留为空白,如下所示:
Driver info: driver.version: ChromeDriver
哪个inturn产生错误:
org.openqa.selenium.net.UrlChecker$TimeoutException
及
在代码块不可见的情况下,很难猜测实际原因,但通常我们可以通过从中下载二进制文件并在初始化WebDriver实例时传递ChromeDriver的绝对路径来解决此问题,如下所示:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
driver = new ChromeDriver();
要点:
- 始终使用最新版本的Selenium客户端和ChromeDriver二进制文件
- 始终保持浏览器的自动更新处于启用状态
- 始终保持JDK版本的更新(当前版本为JDK 8u241)
WebDriverException:等待驱动程序服务器启动时超时。
对外观解决方案没有影响。您尝试过我的解决方案吗?我尝试过设置系统属性,得到了相同的结果。然而,更新我的JDK版本似乎已经解决了这个问题,所以我将把它标记为答案。谢谢你的建议!
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
driver = new ChromeDriver();