用黄瓜选择功能

时间:2013-06-20 14:20:44

标签: ruby-on-rails cucumber capybara

我正在尝试使用黄瓜选择特殊元素。但它显示错误。

这是我的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的

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

发生异常是因为代码在一个链接中找到一个带有文本“2”的链接,该链接位于带有“page”类的元素内。

我认为最好直接找到元素,而不是必须处理within。这允许您找到与css选择器和文本匹配的链接:

find('.page a', :text => '2').click

first('.page a', :text => '2').click