使用have_css验证页面上元素的问题

时间:2013-06-25 18:44:42

标签: cucumber capybara

当我访问某个页面时,我希望验证某些元素是否存在。我在使用should have_css查找页面上的元素时遇到问题。

所以我的代码看起来像这样:       应该有have_css('name')

然而,这没有找到元素。奇怪的是,我能够使用fill_in与字段名称进行交互。例如以下内容:     fill_in('name',:with =>'testname') 在该领域的结果已填充!!有没有人见过这样的东西?

谢谢!

1 个答案:

答案 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]')