2017-02-14 38 views
1

我正在使用水豚写我的功能测试,在那里我必须检查每个按钮的功能。其实,我正在测试以下功能: feature for testing image水豚测试:点击按钮无法正常工作

我试图找到表格上的最后一个删除图标,然后单击它,但是没有出现对话栏。我的测试场景:

scenario 'delete button ' do 

     # click on delete icon does not work 
     (page.all('.table_amenities tr').last).find(".amenity_action>button", visible: false).click 
     expect(page).to have_content '削除してもよろしいですか?' 
    end 
此功能的

Javascript代码:

template#room-amenities-template 
    div[v-if="permissions[0]"] 
    #room-amenities-dialog 
     | {{ window.I18n.dialogs.delete_confirmation }} 
    .search_date 
     router-link[to="/buildings"] 
     span.but_choice.hvr-fade 
      i.fa.fa-home[aria-hidden="true"] 
      | {{ window.I18n.activerecord.models.building }} 
     a 
     span.but_choice_active 
      i.fa.fa-list[aria-hidden="true"] 
      | {{ window.I18n.activerecord.models.room_amenity }} 
     router-link[to="/room_types"] 
     span.but_choice.hvr-fade 
      i.fa.fa-bars[aria-hidden="true"] 
      | {{ window.I18n.activerecord.models.room_type }} 
     router-link[v-if="permissions[1]" to="/room_amenities/new"] 
     span#new-room-amenity.but_save.hvr-fade 
      i.fa.fa-plus[aria-hidden="true"] 
      | {{ window.I18n.buttons.new }} 
    .for_table_amenities 
     table.table_amenities[width="80%" border="1px solid #313131;"] 
     tr 
      th.amenity_number 
      | {{ window.I18n.support.tables.num }} 
      th.amenity_title 
      | {{ window.I18n.activerecord.models.room_amenity }} 
      th.amenity_action 
      | {{ window.I18n.support.tables.actions}} 
     tr[v-for="(roomAmenity, index) in roomAmenities"] 
      td 
      | {{ index + 1 }} 
      td.amenity_title 
      | {{ roomAmenity.title }} 
      td.amenity_action 
      template[v-if="permissions[2]"] 
       router-link[:to= "{ path: '/room_amenities/' + roomAmenity.id }"] 
       button.btn-link 
        i.fa.fa-pencil[aria-hidden="true"] 
       template[v-if="permissions[3] && roomAmenity.rooms.length === 0"] 
       | | 
       button.btn-link[@click= "promptRemove (index, roomAmenity.id)"] 
        i.fa.fa-trash.delete_from_table[aria-hidden="true"] 
此表的

HTML代码:

<td>4</td> 
<td class="amenity_title">Refrigerator</td> 
<td class="amenity_action"> 
    <a href="/room_amenities/4" class=""> 
    <button class="btn-link"><i aria-hidden="true" class="fa fa-pencil"> </i></button></a> 
    | 
<button class="btn-link"><i aria-hidden="true" class="fa fa-trash delete_from_table"></i></button> 

没有任何人有一个想法,为什么对话栏可能没有出现删除图标点击?

回答

0

您不能点击不可见的项目,因此传递visible: false选项,然后调用单击生成的元素是没有意义的。另外,您希望将minimum: 1选项传递给all调用以确保表已实际加载,或者使用类似于last-child的css选择器而不是all。像

page.find('.table_amenities tbody tr:last-child').find(".amenity_action > button:last-child).click 

应该工作。如果这不起作用,那么检查是否发生阻止点击处理程序发生的JS错误。

+0

它不起作用:( –

+0

“不起作用”是什么意思?你点击错误,或者内容期望失败?还是别的什么? –

+0

删除按钮点击不会触发对话栏的外观 –