Capybara迭代匹配元素并单击

时间:2015-10-21 23:52:41

标签: loops click capybara match

我想迭代页面上的元素(将它们添加到购物车 - 一个规格中的4个项目)

我尝试:

find(".active", match: :first)

all(".active").each(&:click)

但是在测试之后我尝试点击链接,有时它会点击错误的一个而我的测试会下降

我使用Capybara + Selenium

1 个答案:

答案 0 :(得分:0)

如果你知道你可以做四件事

all('.active', count: 4).each &:click

将等待4个.active元素在页面上而不是匹配::首次调用。这仅在点击不会从页面中删除任何元素时才有效。在第二次点击之前,它也不会等待第一次点击做任何事情,不确定这是否是您的测试的问题,而没有更多关于点击.active元素的详细信息确实

如果你确实需要匹配的效果:首先调用一个更清晰的方法来执行以下任一操作(rspec或其他)

期待(页面).to have_selector(' .active')

assert_selector('。主动&#39)