所以最近我升级到Selenium 3.5.0和Chromedriver 2.32。

每次我运行程序(无论如何在升级之前都会停止工作)时,我都会收到此错误:

Timed out waiting for driver server to start.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'XXXX', ip: '192.168.171.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: driver.version: ChromeDriver


它的实现方式是单击GUI上的一个按钮,该按钮将启动一个线程,该线程启动包含WebDriver对象的类:

try {
      driver = DriverFactory.createDriver( Browser.CHROME, run_type );
      if ( run_type == Type.WEB )
        webSetup();
      else
        mobileSetup();
}
...
finally {
      if ( driver != null )
        driver.quit();
}


createDriver函数调用createChromeDriver,它很简单:

private static ChromeDriver createChromeDriver(Run.Type t)
{
    System.setProperty( "webdriver.chrome.driver", Properties.server() );
    System.setProperty( "webdriver.chrome.driver.host", "127.0.0.1" );

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-extensions");

    if ( t == Type.MOBILE )
    {
      Map<String, String> mobileEmulation = new HashMap<String, String>();
      mobileEmulation.put("deviceName", "Apple iPhone 6");
      options.setExperimentalOption("mobileEmulation", mobileEmulation);
    }

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    return new ChromeDriver(capabilities);
}


server()直接指向我确定的chromedriver.exe。

我什至尝试在https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html上运行PhantomJS示例,只是为了得到相同的错误,但是驱动程序信息指向PhantomJS(如图)。

最奇怪的是chromedriver.exe进程实际上是在后台启动的,如果我尝试多次运行该程序,将会产生多个chromedriver进程。

有任何想法吗?

最佳答案

升级时,我遇到了类似的问题。发现我的反病毒程序阻止了chromedriver可执行文件的运行,因为它是相当新的,并且反病毒软件在受信任的可执行文件的中央存储库中没有它。

尝试禁用防病毒软件(如果有)。

10-07 19:07
查看更多