1

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

这是我的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 ›&lt;/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

感谢您的建议。

4

1 回答 1

2

发生异常是因为代码说要在具有类“page”的元素内的链接中找到带有文本“2”的链接。

而不是必须处理within,我认为直接找到元素会更好。这使您可以找到与 css-selector 和文本匹配的链接:

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

或者

first('.page a', :text => '2').click
于 2013-06-20T16:25:02.273 回答