ฉันจะได้รับความคาดหวังไม่รู้จบได้อย่างไร [ซ้ำ]

Aug 16 2020

ฉันใช้ซีลีเนียมและฉันต้องรอให้หน้าโหลดอย่างไม่มีที่สิ้นสุด (เพราะใช้เวลาโหลดสองสามชั่วโมง) จากนั้นแยกวิเคราะห์ข้อมูลจากมันฉันจะทำสิ่งนี้ได้อย่างไร?

ฉันใช้รหัสบางอย่างเช่นนี้:

wait = WebDriverWait(driver, 10)  
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "modal-title")))

คำตอบ

2 Marios Aug 16 2020 at 03:41

คุณสามารถใช้WebDriverWait ()เพื่อบรรลุเป้าหมายนั้น ตัวอย่างเช่นรหัสต่อไปนี้รอ 5 ชั่วโมงหรือจนกว่าจะพบองค์ประกอบ

hours_to_wait = 5

element = WebDriverWait(driver, hours_to_wait *60*60).until(
EC.visibility_of_all_elements_located((By.XPATH, 'hereIsYourXpath')))

หรือ :

element = WebDriverWait(driver, hours_to_wait *60*60).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )

หรือในกรณีของคุณ :

element = WebDriverWait(driver, hours_to_wait *60*60).until(
        EC.presence_of_element_located((By.CLASS_NAME, "modal-title"))
    )

คุณต้องนำเข้าสิ่งเหล่านี้:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC