0

问题

当我使用 Chrome 驱动程序运行时,我的 selenium 功能测试失败,但在使用 Firefox 时有效。

我的环境

  1. Mac OS X 山狮
  2. Chrome 版本 22.0.1229.94
  3. 构建信息:版本:'2.2.1',修订:'16551',时间:'2012-04-11 21:42:35'
  4. 系统信息:os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.8.2',java.version:'1.6.0_35' 驱动程序信息:driver.version:ChromeDriver

重现步骤

使用来自 github 的 Geb Grails 示例应用程序时会发生异常。

使用 Chrome 驱动程序运行应用程序:

grails -Dgeb.env=chrome test-app

测试将开始运行,Chrome 实例成功打开,但之后没有任何反应。Chrome 浏览器并没有定向到一个 url,它只是坐在那儿,脸上带着傻笑。在 15 秒(左右)超时后,控制台中会引发以下错误。

错误

Caused by: org.openqa.selenium.WebDriverException: Unable to either launch or connect to Chrome. 
Please check that ChromeDriver is up-to-date. Using Chrome binary 
at: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome 

我的调试步骤

  1. 根据这个 stackoverflow 帖子,我尝试了各种不同版本的驱动程序,但没有任何效果。
  2. 使用 Firefox 驱动程序时测试成功(遗憾的是,我必须使用 Chrome 进行测试)。
  3. 尝试使用最新的 chrome 测试版Version 23.0.1271.40 beta。没运气。
  4. 将测试应用程序中的 geb 和 selenium 版本升级到最新和最好的:def gebVersion = "0.7.2" def seleniumVersion = "2.25.0"

谦虚的感谢部分

谢谢你看看这个。我很想采用geb,但迄今为止这是一场艰苦的战斗。

4

2 回答 2

2

可能是一个愚蠢的答案,但你安装了 chrome 驱动程序吗?http://code.google.com/p/selenium/wiki/ChromeDriver

对于 Firefox,您不需要安装驱动程序,但对于 Chrome 和 IE,您需要。这可能就是您的测试使用 FF 而不是 chrome 运行的原因。

祝你好运!

于 2012-10-24T22:31:55.410 回答
0

我不确定它是否与 Geb 有关,我认为当您使用 WebDriver Chrome 驱动程序运行测试时,您会得到类似的行为。

当 Chrome 不在路径上时,我已经看到了这类错误。chrome.binary 应该始终是实际可执行文件的绝对路径。对于 Mac,这通常看起来像:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

您使用的是什么版本的 Selenium/WebDriver?

于 2012-10-24T21:56:55.360 回答