我有两个围绕搜索结果名称的<h4>
。我需要比较第一个和最后一个结果的值,以确保它们是按字母顺序排列的。h4有一类search-result-name
。它们都在id为#search-results
的form
标签中。
这是我目前的破黄瓜测试:
Then(/^the results should be alphabetical$/) do
first_product_name = page.all('.search-result-name')[1] #first('.search-result-name').text
last_product_name = page.all('.search-result-name')[2]
first_product_name[0].should <= last_product_name[0]
end
这是给我的错误undefined method '[]' for nil:NilClass (NoMethodError)
,所以我认为我做的发现不正确。我找不到关于如何找到元素的第二,第三等匹配的任何文档。问题是它们都在同一个div中,它们有相同的类。我该如何使用硒/水豚来寻找它?
使用强大的XPath
。//form/h4[@class="search-result-name"][1]
为第一个h4
节点,
同理,//form/h4[@class="search-result-name"][2]
表示第二个h4
节点
Capybara积极支持XPath
查找和查询。
我不完全了解您的DOM,因此根据输入,上面的内容必须有效。根据自己的情况进行修改。:)