当我访问某个页面时,我希望验证某些元素是否存在。我在使用should have_css查找页面上的元素时遇到问题。
所以我的代码看起来像这样: 应该有have_css('name')
然而,这没有找到元素。奇怪的是,我能够使用fill_in与字段名称进行交互。例如以下内容: fill_in('name',:with =>'testname') 在该领域的结果已填充!!有没有人见过这样的东西?
谢谢!
答案 0 :(得分:1)
<强>问题强>
中使用的css选择器
should have_css('name')
不正确。这就是要找到一个类型为“name”的元素(即标签)。
相反,当你这样做时
fill_in('name', :with => 'testname')
Capybara寻找文本字段或文本区域,其名称,ID或标签文本为“name”(即等)。
正如您所看到的,使用'name'作为定位器对于这两种方法并不相同。
<强>解决方案强>
如果你想要一个id为“name”的东西,你可以这样做:
should have_css('#name')
如果您想要名称为“name”的内容,您可以这样做:
should have_css('[name=name]')