WebDriverWait 未如預期運作
您正在利用 Selenium 從網頁擷取資料。此頁麵包含一個「custom_cols」按鈕,可啟動用於列選擇的視窗。這個新視窗有時需要幾秒鐘(具體來說,大約 5 秒)來加載。
為了處理這種延遲,您使用了具有 20 秒延遲的 WebDriverWait。奇怪的是,儘管元素顯示在螢幕上,但有時它無法在新視窗中找到元素。此問題大約每十次嘗試發生一次。
有趣的是,在程式碼中的其他位置使用 WebDriverWait 可以按預期工作,確保元素在點擊它們之前可見。
您的查詢圍繞新元素中的原因展開儘管使用 WebDriverWait 來檢測視窗的可見性,但視窗仍未被識別為可見。
建議解決方案:
問題源自於您在嘗試點擊元素時使用 WebDriverWait 的 Presence_of_element_ located() 方法而不是 element_to_be_clickable() 方法。
解決此問題,取代以下內容line:
myElem = WebDriverWait(self.browser, delay).until(EC.presence_of_element_located((By.XPATH , xpath)))
with:
myElem = WebDriverWait(self.browser, delay).until(EC.element_to_be_clickable((By.XPATH , xpath)))
了解 WebDriverWait方法:
下面提供了對上述三個方法的進一步說明methods:
以上是為什麼我的 Selenium WebDriverWait 無法在新開啟的視窗中找到元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!