【问题标题】:Selenium ChromeDriver won't start on any Windows OSSelenium ChromeDriver 不会在任何 Windows 操作系统上启动
【发布时间】:2014-01-22 03:01:30
【问题描述】:

我创建了一个需要 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 计算机,但适用于所有其他操作系统。

【问题讨论】:

  • Selenium 是 2.39,ChromeDriver 是 2.8
  • Chrome 版本 32.0.1700.77

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


【解决方案1】:

如果不使用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 已经是最新的了,你只能等待新版本出来,它应该已经在路上了。

【讨论】:

  • 但是,它确实可以在 Mac OS X 上运行,并且是相同的 chrome 版本......不过我仍然会尝试降级。
  • 另外,如果您不介意我问,我在哪里可以获得旧版 Chrome?
  • @user3190757:这不仅是因为版本号不匹配,还因为里面的实际内容。 Mac OS X 使用 Mac 版 Chrome,Mac 版 ChromeDriver。 Windows 使用不同的。如果一台 Windows 机器工作,但另一台 Windows 机器不工作,那么在这种情况下,您认为有道理,因为只有一个因素发生了变化。
  • @user3190757:Google 为我提供了旧版本的 this
  • 好的,我怎么能降级到 Chrome 而不会再次更新呢?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      检查这一行: DesiredCapabilities 能力 = DesiredCapabilities.firefox();

      您正在使用 chrome,但功能引用的 firefox 仍然存在。

      【讨论】:

        猜你喜欢
        • 2018-10-04
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        相关资源
        最近更新 更多