Java Selenium总是在等待服务器启动时超时

Java Selenium总是在等待服务器启动时超时,java,selenium,selenium-chromedriver,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: '

所以最近我升级到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);
}
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选项=新的ChromeOptions();
options.addArguments(“--disable extensions”);
if(t==Type.MOBILE)
{
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”、“苹果iPhone 6”);
选项。设置实验选项(“移动模拟”,移动模拟);
}
DesiredCapabilities=DesiredCapabilities.chrome();
能力。设置能力(ChromeOptions.CAPABILITY,选项);
返回新的ChromeDriver(功能);
}
server()直接指向chromedriver.exe,我已经确定了这一点

我甚至试着在上运行PhantomJS示例,结果得到了相同的错误,但是驱动程序信息指向PhantomJS(见图)

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


有什么想法吗?

我升级时遇到了类似的问题。发现我的反病毒软件阻止运行chromedriver可执行文件,因为它相当新,而且反病毒软件的可信可执行文件的中心repo中没有它


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

我在升级时遇到了类似的问题。发现我的反病毒软件阻止运行chromedriver可执行文件,因为它相当新,而且反病毒软件的可信可执行文件的中心repo中没有它


如果有,请尝试禁用防病毒软件。

我遇到类似问题,发现在
/etc/hosts
127.0.0.1中没有绑定到本地主机

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


尝试删除任何其他到localhost的绑定,只保留
127.0.0.1

我遇到了类似的问题,发现在
/etc/hosts
127.0.0.1中没有绑定到localhost

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


尝试删除任何其他到localhost的绑定,只保留
127.0.0.1

你怎么知道?我有AVG免费,我没有收到任何通知或任何东西。不管怎样,这就是它。谢谢你的帮助!你怎么知道?我有AVG免费,我没有收到任何通知或任何东西。不管怎样,这就是它。谢谢你的帮助!