上周 chrome auto 更新到 29.0.1547.57,他们完全搞砸了我们所有的回归测试。所以我下载并更新了我的 chromedriver 到 v2.2。现在测试至少会运行,但几乎所有测试都会因此错误而失败。
unexpected response, code=404, content-type="text/plain"
unknown command: session/f82f867596e3c001854423097f341bfe/element/name (Selenium::WebDriver::Error::WebDriverError)
真正令人困惑的部分是,当我通过 rubymine 开始测试时,它在我的本地运行,但是当测试在由 Jenkins 启动的服务器上运行时,它们都失败了。
当我们等待我们的 ajax 弹出窗口加载时,它们似乎在 wait_until_present 上失败,并且在 .exists? 上也失败了。例如:
if @browser.a(:id, 'hn_modal_close').exists?
@browser.a(:class, 'blackText noTextDecoration').click
else
@browser.link(:href, /shopping_cart.cfm/).click
end
它在 if 语句的第一行出错,但是如果我用 irb 运行它,这个确切的代码可以正常工作。
编辑
发现它通过我的本地和 irb 的原因是因为错误仅在通过 rake 开始测试时出现。Jenkins 通过执行 rake 文件开始测试。
所以这似乎是最新的 chromedriver 的一个问题,因为它在升级之前就可以工作。问题仍然存在,但要解决这个问题?
有人知道为什么会这样吗?