如何使用水豚选择第一个添加到购物车按钮?

时间:2018-08-22 02:41:27

标签: ruby-on-rails capybara

页面中有许多带有标签“添加到购物车”的提交按钮。我想选择第一个添加到购物车按钮。匹配第一个添加到购物车按钮的最佳方法是什么?这些按钮的定义如下。它们是带有标签“添加到购物车”的提交按钮

 <input type="submit" name="commit" value="Add to Cart">

我尝试过

all('input[type="submit"]')[0] 

这将选择第一个提交按钮。我还如何确保其标签上有“添加到购物车”?谢谢!

2 个答案:

答案 0 :(得分:1)

这应该做到:

find("input[type='submit']", match: :first)

答案 1 :(得分:1)

有很多方法可以做您想做的事情,其中​​有些会要求您显示更多的HTML结构。但是,最简单的方法可能是利用可以将任何选择器类型传递给first / all / find并使用内置:button选择器-{{3 }}-将通过按钮值查找。

first(:button, 'Add to Cart')

all(:button, 'Add to Cart')[0] # more useful if you want other than the first

请注意,all确实存在一个缺点,即它返回的元素不可重新加载,但是如果您的页面没有更改,并且您打算立即与该元素进行交互,那应该不是问题。