首页 > 解决方案 > org.openqa.selenium.WebDriverException:通过 Selenium 启动 Chrome 浏览器时等待驱动程序服务器启动超时

问题描述

我无法在 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

任何人都可以帮助我。提前致谢,

标签: javaseleniumgoogle-chromeselenium-webdriverselenium-chromedriver

解决方案


此错误消息...

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

...意味着您的程序无法启动/产生新的WebDriverChromeDriver进程。

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

您需要传递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


推荐阅读