水豚测试:点击按钮无法正常工作

时间:2017-02-14 05:16:47

标签: ruby capybara

我正在使用capybara编写功能测试,我必须检查每个按钮的功能。实际上,我正在测试以下功能: feature for testing image

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

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

此功能的Javascript代码:

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

此表的Html代码:

    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"]

有没有人知道为什么对话栏无法出现在删除图标上?

1 个答案:

答案 0 :(得分:0)

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

这样的东西
page.find('.table_amenities tbody tr:last-child').find(".amenity_action > button:last-child).click

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