2015-10-16 93 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 –