Rails + Cucumber/Selenium/Capybara:比较两个h4s的文本值与同一类



我有两个围绕搜索结果名称的<h4>。我需要比较第一个和最后一个结果的值,以确保它们是按字母顺序排列的。h4有一类search-result-name。它们都在id为#search-resultsform标签中。

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

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,因此根据输入,上面的内容必须有效。根据自己的情况进行修改。:)

最新更新