ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit

标签 ruby-on-rails-3 selenium ruby-on-rails-3.2 capybara capybara-webkit

当使用 capybara-webkit 时,我遇到了 selenium 没有 error_messages 方法的问题,尽管 capybara-webkit 的文档说我应该能够一旦我在 scenario 上的标志设置为 :js => true,就可以通过 page.driver.error_messages 访问它。但是,尝试访问它时,它会抛出:

NoMethodError:
       undefined method `error_messages' for #<Capybara::Selenium::Driver:0xc501fc0>

我尝试使用以下方式访问消息:

page.should_not 有 page.driver.error_messages

我也尝试过:

page.should_not :have_errors

以及:

page.should_not have_errors

但没有效果。

最佳答案

我的理解是,error_messagescapybara-webkit驱动程序中包含的一个方法。它不适用于 selenium-webdriver 驱动程序。

根据您收到的异常,您正在使用selenium-webdriver。默认情况下,当指定 :js => true 时,Capybara 使用 selenium-webdriver。

您可能想要更改 javascript_driver 以使用 :webkit(如使用文档中所述 - https://github.com/thoughtbot/capybara-webkit)。

Capybara.javascript_driver = :webkit

关于ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325411/

相关文章:

java - PhantomJS 驱动程序未单击页面中的元素,但未引发错误

html - 错误application.html.erb

ruby-on-rails - Rails 连接表命名约定

database - 即使自定义验证失败 Rails 3 也会保存记录

javascript - 输入电子邮件地址后,我需要司机按标签两次

python - 使用自定义值在 Selenium 中定位元素

ruby-on-rails - 获取与 Controller 中的操作关联的 View 的文件名

ruby-on-rails - Model.reset_column_information 不会在 Rails 迁移中重新加载列

ruby-on-rails - 无法在 heroku 上使用 devise 登录,所有其他环境都可以

ruby-on-rails - Rails 开发环境 - 有什么建议吗?