capybara根据文本和HTML数据属性单击项目

时间:2013-05-23 06:31:29

标签: rspec capybara

我使用了带有rspec / rails的capybara来进行非常简单的测试但是有一个带有很多按钮的页面。我有一组像这样的按钮:

<button class="add-item text-as-link btn" data-menu-item-id="50" data-menu-header-id="34">add menu item</button>

data-menu-item-id可能与我需要的一样具体。我该怎么做:

click_on "add menu item"  # need to also have data-menu-item-id since multiple 'add menu item'

和数据?

thx

1 个答案:

答案 0 :(得分:2)

如果要根据其属性及其文本查找元素,则需要通过xpath找到它。以下xpath将找到具有指定data-menu-item-id属性和text:

的按钮元素
//button[@data-menu-item-id="50" and text()="add menu item"]

你可以得到这样的元素:

button = page.first(:xpath, '//button[@data-menu-item-id="50" and text()="add menu item"]')

然后点击它:

button.click