WebDriverWait 未如預期回應
Selenium 的 WebDriverWait 旨在等待滿足特定條件,然後再繼續執行操作。但是,在某些情況下,它可能無法按預期運行,如給定場景中所述。
問題在於在新開啟的視窗上等待元素時的期望選擇。原始程式碼使用 Presence_of_element_ located() 方法,該方法檢查 DOM 上是否存在元素,但不確保其可見性或互動性。如果元素尚未完全載入或從視圖中隱藏,這可能會導致錯誤。
為了解決這個問題,使用的適當期望是 element_to_be_clickable(),它確保元素在之前既可見又可點擊繼續。這對於新開啟的視窗很重要,可能需要一些時間才能完全初始化。
實作:
將原始WebDriverWait 語句替換為以下內容:
try: myElem = WebDriverWait(self.browser, delay).until(EC.element_to_be_clickable((By.XPATH, xpath)))
透過使用element_to_be_lickclickbable(it的元素視窗不僅可見而且可互動。這應該可以解決在新開啟的視窗中選擇元素時間歇性失敗的問題。
理解期望方法:
作為參考,以下是相關期望方法的定義Selenium:
以上是為什麼我的 Selenium WebDriverWait 在處理新 Windows 時沒有如預期運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!