我正在尝试使用黄瓜选择特殊元素。但它显示错误。
这是我的HTML
<div class="pagination">
<ul>
<li class="page active">
<a href="/subscriptions">1</a>
</li>
<li class="page">
<a rel="next" href="/subscriptions?page=2">2</a>
</li>
<li class="next_page">
<a rel="next" href="/subscriptions?page=2">Next ›</a>
</li>
<li class="last next">
<a href="/subscriptions?page=2">Last »</a>
</li>
</ul>
</div>
我的步骤功能是
But /^I click the pagination link$/ do
within(".page a") do
click_on("2")
end
end
此处显示错误消息
But I click the pagination links # features/step_definitions/subscription_steps.rb:206
Unable to find link or button "Next >" (Capybara::ElementNotFound)
./features/step_definitions/subscription_steps.rb:207:in `/^I click the pagination links$/'
features/subscriptions/test.feature:15:in `But I click the pagination links'
我该如何解决这个问题。
注意:我无法使用click_on(2)
。因为在我的页面中有更多2的
感谢您的建议。
答案 0 :(得分:2)
发生异常是因为代码在一个链接中找到一个带有文本“2”的链接,该链接位于带有“page”类的元素内。
我认为最好直接找到元素,而不是必须处理within
。这允许您找到与css选择器和文本匹配的链接:
find('.page a', :text => '2').click
或
first('.page a', :text => '2').click