0

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

所以我的代码如下所示: should have_css('name')

但是,这没有找到元素。奇怪的是,我可以使用 fill_in 与字段名称进行交互。例如下面的: fill_in('name', :with => 'testname') 结果字段被填充!!有没有人见过这样的事情?

谢谢!

4

1 回答 1

1

问题

中使用的 css 选择器

should have_css('name')

是不正确的。这表示要查找类型为“名称”的元素(即标签)。

相反,当你这样做时

fill_in('name', :with => 'testname')

Capybara 查找名称、id 或标签文本为“名称”(即 、 等)的文本字段或文本区域。

正如您所看到的,使用“名称”作为定位器对于这两种方法是不一样的。

解决方案

如果你想要一个 id 为“name”的东西,你想做:

should have_css('#name')    

如果你想要一个名为“name”的东西,你想做:

should have_css('[name=name]')  
于 2013-06-25T20:58:51.530 回答