在 Selenium 中,通常需要等到元素出現後再與其互動。使用 sleep() 進行等待是不可靠的,因為元素的出現時間可能會有所不同。相反,您應該利用 WebDriverWait 和預期條件。
等待元素存在
要驗證元素在 DOM 上的存在,請將預期條件設為 Presence_of_element_ located()。這並不要求元素可見。例如:
WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()
等待元素可見性
要從元素中提取屬性,請使用visibility_of_element_ located()。這可確保元素可見且尺寸不為零。
email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".anonemail"))).get_attribute("value")
等待元素可點擊性
要點選元素,請將預期條件設為 element_to_be_clickable() 。這會檢查元素是否可見並啟用互動。
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()
其他參考
更多見解,請參閱以下資源:
以上是如何在 Selenium 中可靠地等待元素出現、可見且可點擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!