ตั้งเวลาหมดเวลาการโหลดหน้าของ Selenium หลังพร็อกซี
ตั้งเวลาหมดเวลาการนำทางของเบราว์เซอร์ และแยกความแตกต่างจากการรอองค์ประกอบ เวลาหมดเวลาของสคริปต์ และการเชื่อมต่อควบคุมของ WebDriver
from selenium.common.exceptions import TimeoutException
driver.set_page_load_timeout(30)
try:
driver.get('https://example.com/')
except TimeoutException:
print('The navigation did not finish within its page-load timeout.')
ตั้งค่านี้ก่อนการนำทางบนไดรเวอร์ที่กำหนดค่าด้วยพร็อกซีที่ต้องการไว้แล้ว วิธีการของ Python รับหน่วยเป็นวินาที
กลยุทธ์การโหลดหน้าที่เลือกกำหนดความสมบูรณ์: normal รอความพร้อมของเอกสารอย่างสมบูรณ์ ส่วน eager ใช้สถานะที่เร็วกว่า ทั้งสองไม่รอทุกคำขอที่สคริปต์จะสร้างในอนาคต
| ขีดจำกัด | งานที่ถูกจำกัด |
|---|---|
| เวลาหมดเวลาการโหลดหน้า | การนำทางไปถึงสถานะความสมบูรณ์ที่เลือกไว้ |
| การรอโดยนัย | ความพยายามค้นหาตำแหน่งองค์ประกอบ |
| เวลาหมดเวลาของสคริปต์ | การทำงานของสคริปต์แบบอะซิงโครนัสที่เกี่ยวข้อง |
| เวลาหมดเวลาการขนส่ง WebDriver ของตัวรัน | คำขอควบคุมแยกต่างหากจากสคริปต์ทดสอบไปยังไดรเวอร์ |
หากการเชื่อมต่อควบคุมนั้นค้างหรือใช้พร็อกซีที่ไม่เหมาะสม งบประมาณการนำทางของเบราว์เซอร์ไม่ได้แก้ไขสิ่งนั้น เวิร์กโฟลว์หลายขั้นตอนก็ต้องมีงบประมาณงานโดยรวมด้วย ตัวรันที่กำกับดูแลสามารถตรวจพบความคืบหน้าที่หยุดชะงักแยกจากการนำทางครั้งเดียว
เก็บตัวจับเวลาหรือการขนส่งที่รายงานไว้ในบันทึกความล้มเหลว เวลาหมดเวลาการนำทางเพียงอย่างเดียวไม่สามารถแยกการตั้งค่าพร็อกซี ความล่าช้าของปลายทาง และพฤติกรรมการโหลดของหน้าเอง