Capybara - 按类名单击元素

时间:2017-04-13 15:59:53

标签: ruby automation capybara

对于一个似乎是一个简单问题的问题,我已经在这个问题上花费了很长时间,似乎无法在谷歌上找到任何东西。我有这个按钮我需要点击哪个没有id但是包含了一个类

<button class="filter-case-studies" onclick="initBootpag(filterForContentType('CASE STUDIES', searchHits))" type="button">
<b>CASE STUDIES</b>
(2)
</button>

我尝试使用click_on,我现在知道它只适用于链接和按钮,所以当然不会起作用。这就是我到目前为止所做的:

When(/^I filter the results to only see case studies$/) do
  click_on('filter-case-studies')
end

我也试过page.find('filter-case-studies').click,这也行不通。

page.find(:class, 'filter-case-studies').click默许:css所以这对我来说也失败了。

是否无法按照Capybara中的班级名称点击元素?

提前感谢您的帮助。

5 个答案:

答案 0 :(得分:19)

在Capybara执行此操作的标准方法是

find('button.filter-case-studies').click

在相对较新版本的Capybara中你也应该能够做到

click_on(class: 'filter-case-studies')

答案 1 :(得分:0)

答案 2 :(得分:0)

我有一个使用上述方法找不到的按钮(Unable to find visible link or button nil with classes [close-modal]

这对我有用:page.execute_script('$.find(".close-modal")[0].click()')

答案 3 :(得分:-1)

click_on('.filter-case-studies')

您需要.选择器用于类,#用于ID。

答案 4 :(得分:-1)

感谢Schutte先生提出使用.选择器的想法。

我最后必须使用page.find(:class, '.filter-case-studies').click。绝对导航栏妨碍了按钮,因此我必须包含page.execute_script "window.scrollBy(0,500)"才能完成测试。

相关问题