【问题标题】:How to test Rails 3.1/HTML5 required fields with Cucumber/Capybara?如何使用 Cucumber/Capybara 测试 Rails 3.1/HTML5 必填字段?
【发布时间】:2011-09-14 19:06:53
【问题描述】:

当必填字段为空时,如何查看显示在必填字段上方的“请填写此字段”消息?

现在我的黄瓜场景似乎完全忽略了空白字段,成功提交了表单。

(我正在验证字段是否存在,手动提交时,表单会显示消息)

【问题讨论】:

  • 你用的是什么Capybara驱动? (例如机械化、硒)
  • 只是检查,但是字段上有 validates_presence_of,并且在提交时仍然被接受?
  • @AndyWaite 默认值,从刚才的 capybara README 来看,它看起来像是 :rack_test。而且它不支持javascript,这是我没想到的。所以答案是使用js驱动?
  • @Tonys 有,手动提交时会出现消息。
  • (续)尝试使用其他驱动程序,例如 Mechanize 或 Selentium,看看会发生什么。

标签: html cucumber ruby-on-rails-3.1 capybara


【解决方案1】:

如果这是基于 javascript 的警报,则需要使用 :selenium 驱动程序之类的东西。

# Set selenium as the default driver for javascript
Capybara.javascript_driver = :selenium

# Register chrome browser for the :selenium driver
Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

这样做并使用@javascript 标记您的场景,只需使用Then I should see "Please fill out this field" 之类的步骤即可。

I have a gist up that summarizes using :selenium, :capybara-webkit, headless gem for both development and continuous integration。它可能对您的设置有所帮助,但也可能超出您目前的预期。

【讨论】:

    猜你喜欢
    • 2018-06-06
    • 2013-05-19
    • 2011-09-30
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多