เคยเจอมั้ยคะ element not found ทั้งๆที่ element ที่ว่ามันก็โชว์หราอยู่หน้าจอ
ข้อผิดพลาดอันนี้นี้ถ้าไม่ใช่เราใส่ target ผิดเอง ก็เพราะว่า selenium หาไม่เจอจริงๆค่ะ เพราะมันเป็น ajax
วิธีแก้แบบง่ายๆแต่ได้ผลที่สุดคือสั่งให้ selenium หยุดการทำงานรอ ajax ค่ะ
วิธีสั่งหยุดแบบได้ผลชะงัดคือ pause แต่แนะนำให้ใช้เป็นไม้ตายสุดท้ายเมื่อวิธีอื่นๆไม่ได้ผลค่ะ
คำสั่งรอทั้งหลายจะขึ้นด้วย waitfor...
กระทู้นี้จะแนะนำแค่สองตัวที่(น่าจะ)ใช้บ่อยค่ะ
- waitForVisible รอจนกว่าสิ่งนั้นจะปรากฏ
- waitForElementPresent รอให้ element ที่ระบุโผล่มาบนหน้าเว็บ
ระยะเวลารอก็อยู่ที่เราจะเซ็ท timeout ไว้ค่ะ
default ที่ให้มากับตัว selenium คือ 30000 ms (30วินาที) ถ้าเลยเวลาก็จะได้ error มาค่ะ
สองตัวนี้รอได้เหมือนกันทำงานเหมือนกัน ต่างกันจุดเล็กๆนิดเดียวคือ waitForVisible จะหาไม่พบถ้า element นั้น hidden ค่ะ
รูปแบบ
command: waitForVisible
target: ตำแหน่งของ element ที่เราต้องการรอ
value: ไม่มี
command: waitForElementPresent
target: ตำแหน่งของ element ที่เราต้องการรอ
value: ไม่มี
target ของทั้งสองคำสั่งแนะนำให้เลือกตัวที่จะปรากฎมาเป็นลำดับสุดท้ายนะคะ
เพราะมันจะทำให้เรามั่นใจได้ว่าข้อมูลในหน้านั้นโหลดมาครบแล้วแน่นอน
วิธีใช้
ก็ไม่มีอะไรมากค่ะ เอาคำสั่ง wait ไปแทรกไว้ก่อนคำสั่งที่ถูกฟ้องว่า element not found นั่นแหละ
เช่น
click | link=HOME |
type | id=textbox_search1 | 2014-07
แล้วบังเอิญหน้า home เป็น ajax
ถ้าเราใช้คำสั่ง type ต่อทันทีจะไม่สามารถหา target ให้ type ได้ค่ะเพราะว่าหน้า home ยังไม่มีข้อมูลเลย
งั้นเราก็แทรกคำสั่ง wait ลงไปแบบนี้
click | link=HOME |
waitForVisible | link=Previous |
type | id=textbox_search1 | 2014-07
ทีนี้ก็จะทำการรอจนกว่า link ที่ชื่อ Previous จะปรากฎ
ซึ่งแปลว่าข้อมูลในหน้านั้นส่งมาครบแล้วค่อยทำคำสั่ง type ต่อไปค่ะ
Selenium IDE - waitFor.. แก้ปัญหา element not found กับ ajax
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP VIP Members
- โพสต์: 2969
- ลงทะเบียนเมื่อ: 08/09/2014 10:34 am
Selenium IDE - waitFor.. แก้ปัญหา element not found กับ ajax
Trust me, I'm a Programmer
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
- 0 ตอบกลับ
- 1165 แสดง
-
โพสต์ล่าสุด โดย thatsawan
01/01/2016 10:56 pm
-
-
โพสต์ใหม่ ใช้ภาษาไทยในการค้นหา element ในเว็บไซต์แล้ว error selenium
โดย anawatj » 03/10/2023 1:54 pm » ใน Programming - C/C++ & java & Python - 3 ตอบกลับ
- 5541 แสดง
-
โพสต์ล่าสุด โดย anawatj
06/10/2023 11:27 am
-
-
-
โพสต์ใหม่ การหาตำแหน่งของ Session และ Element บนเว็บบราวเซอร์โดยการใช้ Xpath ในการทำ Selenium Webdriver
โดย rangsan » 10/05/2018 10:48 am » ใน Python Knowledge - 0 ตอบกลับ
- 1491 แสดง
-
โพสต์ล่าสุด โดย rangsan
10/05/2018 10:48 am
-
-
-
โพสต์ใหม่ การแปลง Session และ Element ที่ได้จากการทำ Xpath เป็นลิ้งค์ในการทำ Selenium Webdriver
โดย rangsan » 10/05/2018 11:13 am » ใน Python Knowledge - 0 ตอบกลับ
- 1134 แสดง
-
โพสต์ล่าสุด โดย rangsan
10/05/2018 11:13 am
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: Google [Bot] และบุคลทั่วไป 3