2013-06-20 106 views
1

我想選擇使用黃瓜的secific元素。但它顯示錯誤。使用cucmber選擇功能

這裏我的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

異常和代碼似乎並不匹配。當代碼正在尋找「2」時,異常是尋找「下一步>」。你確定你粘貼了正確的信息嗎? –

回答

2

發生異常是因爲代碼表示在類「page」的元素內的鏈接中查找帶有文本「2」的鏈接。

而不是處理within,我認爲最好是直接找到元素。這使您可以發現,無論是CSS選擇器和文本匹配的鏈接:

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

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

請注意'find'可能比'first'好 –

+0

沒錯,補充回答。 –

+0

感謝您的回答。你能告訴我我可以去哪裏,並傾向於像'click_on,find,first,fill_in ....'這樣的關鍵字。更好的,你可以給我發送任何鏈接 – Selvamani