Selenium总是等待服务器启动

时间:2017-09-04 21:44:05

标签: java selenium selenium-chromedriver

所以最近我升级到了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);
}

服务器()直接指向chromedriver.exe,我已经确定了。

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

升级后我遇到了类似的问题。发现我的反病毒阻止运行chromedriver可执行文件,因为它是相当新的并且反病毒软件没有在它们的可信可执行文件的中央回购中。

如果您有任何反病毒软件,请尝试禁用。

答案 1 :(得分:0)

我有一个类似的问题,发现在127.0.0.1 localhost 127.0.0.1没有绑定到localhost。

etc/hosts文件中添加127.0.0.1解决了这个问题。

尝试删除对localhost的任何其他绑定,并保留linesplit