如何使用Selenium WebDriver for Python 等待頁面載入
從無限滾動實現的網頁中抓取資料時,至關重要的是有效偵測頁面何時完全載入新內容。本文探討了一種比每次滾動後等待固定時間間隔更省時的方法。
預設頁面載入機制
預設情況下,Selenium WebDriver 的 .get () 方法等待頁面完全載入。但是,這不考慮在框架內或透過 AJAX 請求載入。
對特定元素使用 WebDriverWait
等待特定元素在頁面,將 WebDriverWait() 與預期條件一起使用。例如:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By delay = 3 # seconds driver = webdriver.Firefox() driver.get("url") try: myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'id-of-element'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
注意事項
請注意,WebDriverWait 只等待指定的元素或條件變為 true。如果等待其他元素或條件,您可能需要使用自訂程式碼來偵測頁面載入完成。
以上是如何在 Python 中使用 Selenium WebDriver 有效檢測網頁(無限滾動)何時已完全載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!