บางครั้งปุ่มหรือแบบฟอร์ม ที่เราต้องการจะกรอกนั้นมี Animation เช่น เลื่อนขึ้นลง ทำให้ ถ้าเราสั่งให้ script กดปุ่ม หรือกรอกข้อมูลเลยจะทำให้ Script ทำงานไม่สำเร็จนั่นเอง ตัวอย่างเช่น เราต้องการจะกดปุ่มปิด Modal dialog ของ bootstrap

ลองเขียน Script แบบเก่า

จาก Script ด้านบนจะเห็นว่าจะมีการใช้ Sleep ใน Line ที่ 11 เนื่องจากเราไม่สามารถกดปุ่มได้ถ้า ปุ่มยังมี animation อยู่ครับ

แก้ใหม่โดยใช้ function Wait Until Element Finished Animating

การแก้ทำได้ง่ายๆเลย คือเปลี่ยนจาก Sleep มาใช้ Wait Until Element Finished Animating แทน โดย Keyword นี้จะทำการรอให้ animation เสร็จก่อนที่จะทำการกดปุ่มนั่นเอง

Keyword ใช้วิธีการตรวจสอบ animation จากการหา position x, y แล้วเทียบกับ position x,y ก่อนหน้าครับ

Previous articleมาทำให้ VS Code แสดง auto-complete RF Puppeteer keywords
Next articleใช้ Keyword เดียว จัดการกับ เงื่อนไขที่หลากหลาย ด้วย Run Async Keywords And Return First Completed