Selenium ChromeDriver无法在任何Windows操作系统上启动

时间:2014-01-22 03:01:30

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

我创建了一个需要ChromeDriver的程序。

它在Mac OS X和Linux上运行良好,但是当我尝试在Windows上启动它时会挂起以下内容:

"driver = new ChromeDriver(capabilities);"

但是没有产生错误。

我已正确加载了chrome驱动程序,并正确地将二进制路径设置为chrome.exe。由于某些未知原因,它只是在初始化驱动程序时挂起。

    ChromeOptions options = new ChromeOptions();
    options.addArguments("window-size=800,600");
    options.setBinary(getChromePath()); //Returns Chrome Path (Works)

    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);

    driver = new ChromeDriver(capabilities);
    driver.manage().timeouts().pageLoadTimeout(pageLoadTimeout, TimeUnit.SECONDS);

我不知道为什么会这样,chromedriver.exe甚至从未作为一个进程启动。这不适用于任何Windows计算机,但适用于所有其他操作系统。

4 个答案:

答案 0 :(得分:3)

如果您不使用capabilities,它会正常启动吗?

以下答案可能与您的问题无关。首先调试你的,然后在没有其他解决方案时尝试。

Chrome最近经常更新,您需要找到与之兼容的ChromeDriver版本。

最新的Chrome版本为2.8,根据release note,它应该支持Chrome 30-33

但是,从this question开始,我相信最近的Chrome更新再次破坏了它。 Chrome 32.0.1700.72 m应该适用于ChromeDriver 2.8,但32.0.1700.7632.0.1700.77不会。

在撰写本文时,请尝试两种解决方案。

  1. 将您的Chrome降级为32.0.1700.72 m甚至更低。
  2. 由于ChromeDriver 2.8已经是最新版本,您所能做的就是等待新版本推出,这应该是正在发布的。

答案 1 :(得分:1)

Selenium需要英语Windows操作系统。否则,它不会触发任何浏览器。当我将Windows 10土耳其语版本更改为英语时,它开始正常工作。如果您在IE,gecko驱动程序和chrome驱动程序上都遇到相同的问题,那么肯定是这个问题。

答案 2 :(得分:0)

您使用的是最新版本的chrome 32.0.1700.76 m ......意味着您必须更新Chrome驱动程序服务器,即2.8 ...和selenium 2.39

答案 3 :(得分:0)

检查此行: DesiredCapabilities capabilities = DesiredCapabilities.firefox();

你正在使用chrome,但仍有firefox可以参考。