我创建了一个需要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计算机,但适用于所有其他操作系统。
答案 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.76
和32.0.1700.77
不会。
在撰写本文时,请尝试两种解决方案。
32.0.1700.72 m
甚至更低。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可以参考。