1
我試圖進行以下測試:檢查水豚::節點::元素已經由jQuery.remove()刪除
it 'remove item from cart' do
visit cart_path
button = page.find("a[href='/carts/#{item.id}/remove']")
card = find_ancestor_with_class(button, '.card')
button.click
# check if card has been removed from page
end
該測試suppossed工作,因爲下面的JS刪除卡頁數:
$.ajax({
url: link,
method: "GET",
success: function() {
$('#alert-modal').modal('show');
$(button).closest(".card").remove();
}
});
我如何驗證.card
html是否已從頁面中刪除?
但是沒有辦法用'card'來檢查嗎? –
@RodrigoChaves不是真的,具體取決於'card'的位置,當元素被移除時'card'實際上可能指向一個新元素,如演示中所示 - https://gist.github.com/ twalpole/ac5c893a6f1f27ba3005908421d3e45d - 其中'card'最終指向頁面上的所有三個'.card'元素,因爲元素被刪除。這是因爲Capybaras自動重新加載處理動態頁面刷新/重新加載。測試應該真正關注用戶在頁面上看到的內容,而不是擔心特定的元素。 –