在提交之前,请检查使用Capybara的javascript填充的字段的内容

时间:2013-10-21 17:50:48

标签: ruby-on-rails ruby-on-rails-3 cucumber capybara

我有一个字段,我根据页面上的下拉列表自动填充。 即我选择task_type并且task_name已填充task_type。

我无法弄清楚如何测试这个。我基本上只想测试该字段的当前内容。

我尝试的所有东西似乎都能找到该字段但不检查它的内容。

Then(/^"(.*?)" should contain "(.*?)"$/) do |field, text|
  page.should have_field(field, :text => value)
end

我假设我需要做一些js技巧来从浏览器中获取信息,但似乎无法解决这个问题。

And I should see "Annual Accounts" in "task[name]"

尝试过task_name以及

都失败了
  find(field).should have_text(text)

留言

Unable to find css "task[name]"

如果我使用

page.should have_field(field, :text => text)

然后他们失败了:

expected to find field "task_name" with text "Annual Accounts" but there were no matches. Also found "", 

2 个答案:

答案 0 :(得分:0)

您可以使用have_text帮助

find(field).should have_text(text)

答案 1 :(得分:0)

是的,这两项工作都是: 不确定它们之间有什么区别。 我也认为这完全匹配。如果有人能告诉我如何进行“包含”类型匹配,那将非常方便。

Then(/^I should see "(.*?)" in "(.*?)"$/) do |text, field|
  # page.has_field?(field, :with => text)
  page.should have_field(field, :with => text)
end