ฉันใช้ Capybara 2.1 กับ Ruby 1.9.3 โดยใช้ไดรเวอร์ซีลีเนียม (พร้อม Minitest และ Test Unit) เพื่อทดสอบเว็บแอป
ฉันกำลังดิ้นรนกับปัญหา StaleElementReferenceException
ฉันได้เห็นการอภิปรายในหัวข้อนี้มาหลายครั้งแล้ว แต่ยังไม่สามารถหาวิธีแก้ไขปัญหาที่ฉันกำลังเผชิญอยู่ได้
โดยพื้นฐานแล้ว ฉันกำลังพยายามค้นหาองค์ประกอบการแบ่งหน้าทั้งหมดบนหน้าของฉันโดยใช้โค้ดนี้:
pagination_elements = page.all('.pagination a')
จากนั้นฉันก็ยืนยันองค์ประกอบเหล่านั้นเช่น:
pagination_elements.first.must_have_content('1')
หลังจากการยืนยันเหล่านั้น ฉันกำลังทดสอบต่อโดยคลิกที่ลิงก์หน้าถัดไป เพื่อให้แน่ใจว่าองค์ประกอบการแบ่งหน้าแรกในอนาคตของฉันจะเป็นหน้าก่อนหน้า เมื่อต้องการทำเช่นนั้น ฉันกำลังเรียกข้อมูลองค์ประกอบการแบ่งหน้าอีกครั้ง:
new_pagination_elements = page.all('.pagination a')
และ Stale Error ก็เกิดขึ้นที่นี่ เพราะฉันเข้าถึงองค์ประกอบที่ฉันได้เข้าถึงแล้ว ( นี่คือข้อผิดพลาด )
คุณสามารถดูสถานะลิงก์ได้ที่นี่
ฉันไม่รู้จริงๆ ว่าจะทำให้การทดสอบทั่วไปนี้ทำงานได้อย่างถูกต้องได้อย่างไร คุณมีเคล็ดลับสำหรับวิธีที่ดีกว่าในการเข้าถึงองค์ประกอบการแบ่งหน้าของฉันหรือไม่?