我正在使用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"]
有没有人知道为什么对话栏无法出现在删除图标上?
答案 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错误。