0

我有两个<h4>围绕搜索结果名称的 s。我需要比较第一个和最后一个结果的值,以确保它们按字母顺序排列。h4 有一个search-result-name. 它们都form与 id 位于同一个标签中#search-results

这是目前我的破黄瓜测试:

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 中并且它们具有相同的类。我将如何使用 selenium/capybara 来寻找它?

4

1 回答 1

0

使用强大的XPath. //form/h4[@class="search-result-name"][1]指第一个h4节点,
同理,//form/h4[@class="search-result-name"][2]指第二个h4节点

Capybara积极支持通过XPath.
我对您的 DOM 没有完整的了解,因此根据输入,以上必须有效。根据自己的修改。:)

于 2013-05-13T18:52:32.163 回答