2015-10-16 23 views
0

我正在爲我的rails應用程序編寫測試,而按鈕本身是在一個名爲tick的類中。在測試中,我有以下,但它失敗。Rspec測試不註冊按鈕與圖形

click_button "tick" 

這適用於我的其他按鈕,如:

click_button "Create School" 

蜱按鈕是一個複選標記,當我檢查元素我看到

<a class="tick" data=method="get" href="/tasks/1/edit"> 
    ::after 
</a> 

作爲後續時,數據以表格形式呈現,因此頁面上有多個刻度,我想知道這是否會導致問題。更接近檢查元素顯示:

<tbody> 
    <tr role="row" class="odd"> 
     <td class="sorting_1">school</td> 
     <td> 
     <a class="tick" data-method="get" href="/schools/16/edit"> 
      ::after 
     </a> 
     <a class="cross" data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/schools/16"> 
      ::after 
     </a> 
     </td> 
    <tr role="row" class="even"> 
     <td class="sorting_1">school2</td> 
     <td> 
     <a class="tick" data-method="get" href="/schools/52/edit"> 
      ::after 
     </a> 
     <a class="cross" data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/schools/52"> 
      ::after 
     </a> 
     </td> 
    </tr> 
</tbody> 

RSpec /水豚測試應該尋找點擊什麼?

+0

你想'click_link'而不是'click_button'? – orde

+0

不,它是一個按鈕,它適用於其他按鈕。 –

+0

您提供的HTML表示它是一個鏈接。 – orde

回答

1

水豚的click_button會發現<input>元素(與類型的submitresetimagebutton)和<button>元素。該方法不適用於<a>#click_link發現<a>元素的href屬性與提供的字符串匹配 - 該字符串與id,文本內容title<img>alt屬性匹配。也有click_link_or_button這將(顧名思義)嘗試匹配鏈接或按鈕。

從你的問題既然你已經更新了你的問題出現的::after所以<a>元素具有文本內容和每一個環節的展示後,在::它 - 我要去假設,實際上是從indiciation您瀏覽器是一個CSS僞元素被用元素中使用(如果這不是一個正確的假設,你可以嘗試click_link('::after')

在這種情況下,你可能沒有任何的id,文字,title,或alt屬性來匹配 - 你需要使用一個簡單的發現者,並呼籲click像下面的例子(或添加一個ID或標題屬性)。

find('a.tick').click 
find('a[href=/schools/52/edit]').click 

在更新後的HTML,如果試圖使用在最前面的那你還需要你的範圍找你行的一個例子,因此它可以找到一個獨特的元素

find('tr', text: 'school2').find('a.tick').click 
+0

它是否在連續? –

+0

我添加了更多的頁面,因爲有多個交叉和打勾按鈕來編輯和刪除每條記錄。我把它張貼在上面的原文中。 –

+1

然後你需要確定你的發現者的範圍 - 找到('tr',text:'school2')find('a.tick')。click –