我有一个适当的标签,我可以豚填补没有问题的字段:
fill_in 'Your name', with: 'John'
我想在灌装之前检查它的价值并不能弄明白。
如果我的后面添加fill_in
以下行:
find_field('Your name').should have_content('John')
该测试失败,虽然填充,因为我已经被保存页面验证之前的工作。
我在想什么?
我有一个适当的标签,我可以豚填补没有问题的字段:
fill_in 'Your name', with: 'John'
我想在灌装之前检查它的价值并不能弄明白。
如果我的后面添加fill_in
以下行:
find_field('Your name').should have_content('John')
该测试失败,虽然填充,因为我已经被保存页面验证之前的工作。
我在想什么?
您可以使用XPath查询来检查,如果有一个input
与特定值(例如“约翰”)元素:
expect(page).to have_xpath("//input[@value='John']")
见http://www.w3schools.com/xpath/xpath_syntax.asp获取更多信息。
对于也许是更漂亮的方法:
expect(find_field('Your name').value).to eq 'John'
编辑:现在我可能会使用have_selector
expect(page).to have_selector("input[value='John']")
如果您正在使用的页面对象模式(你应该!)
class MyPage < SitePrism::Page
element :my_field, "input#my_id"
def has_secret_value?(value)
my_field.value == value
end
end
my_page = MyPage.new
expect(my_page).to have_secret_value "foo"
一个漂亮的解决办法是:
page.should have_field('Your name', with: 'John')
要么
expect(page).to have_field('Your name', with: 'John')
分别。
另请参阅参考 。
注 :为残疾人投入,你需要添加选项disabled: true
。
如果你特别想测试一个占位符,使用方法:
page.should have_field("some_field_name", placeholder: "Some Placeholder")
要么:
expect(page).to have_field("some_field_name", placeholder: "Some Placeholder")
如果你想测试用户输入的值:
page.should have_field("some_field_name", with: "Some Entered Value")
我想知道如何做略有不同:我想考外地是否有一定的价值(同时利用的水豚的重新测试,直到它匹配的匹配能力 )。 事实证明,这是可以使用“过滤块”来做到这一点:
expect(page).to have_field("field_name") { |field|
field.value.present?
}