org.openqa.selenium.WebDriverException:通过Selenium启动Chrome浏览器时等待驱动程序服务器启动超时

时间:2019-03-08 07:50:32

标签: java selenium google-chrome selenium-webdriver selenium-chromedriver

我无法在Chrome浏览器中输入URL,因为当前正在打开浏览器,但未自动输入URL。 他们可能是浏览器问题。

代码是:

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;


public class OpenBidAssist {

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
        System.out.println("TEST1");
        WebDriver driver=new ChromeDriver();
        WebDriverWait wait=new WebDriverWait(driver, 20);
        System.out.println("TEST2");
        driver.get("https://stg-cipher-fe.ofbusiness.in/");
        System.out.println("TEST3");
    }
}

我遇到的错误是:

TEST1
Created new window in existing browser session.
Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'
System info: host: 'ofbl219-Latitude-3480', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-49-generic', java.version: '1.8.0_181'
Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:202)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:188)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at OpenBidAssist.main(OpenBidAssist.java:13)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:11320/status] to be available after 20006 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:197)
    ... 9 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:156)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    ... 10 more

有人可以帮我吗? 预先感谢,

4 个答案:

答案 0 :(得分:2)

替换System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");

带有System.setProperty("webdriver.chrome.driver", "your path of Driver/chromedriver.exe");之类的exe文件的路径

答案 1 :(得分:1)

此错误消息...

Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.

...表示您的程序无法启动/产生新的 WebDriver ,即 ChromeDriver 进程。

您的主要问题是您传递给System.setProperty()行的 Value

您需要传递 ChromeDriver 的绝对路径,而不是 Google Chrome 客户端二进制文件的绝对路径。因此,您需要:

  • 更改:

    "/usr/bin/google-chrome"
    
  • 使用:

    "/path/to/chromedriver"
    

本质上,您需要:

  • 更改:

    System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
    
  • 使用:

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

注意:您可以从ChromeDriver - WebDriver for Chrome

下载相关版本的 ChromeDriver

答案 2 :(得分:0)

从代码中很明显,您正在尝试创建ChromeDriver,但是可执行文件的路径不正确。

chromedriver downloads

下载最新的ChromeDriver可执行文件

然后替换

System.setProperty(“ webdriver.chrome.driver”,“ / usr / bin / google-chrome”);

System.setProperty(“ webdriver.chrome.driver”,“ /chromedriver/chromedriver.exe的路径”);

答案 3 :(得分:0)

我们花费了大量的时间来弄清楚为什么在构建服务器上而不在开发人员工作站上遇到此确切错误。未安装Chrome时会出现此错误。 ChromeDriver.exe的路径可以是完美的,但是如果您还没有Chrome,则仍然会出现此错误。手动运行ChromeDriver.exe时,它将启动并在未安装Chrome的情况下进行响应,您可以在http://localhost:9515/status对其进行查询,但在测试中仍然无法正常工作。