首頁 >後端開發 >Python教學 >為什麼我的 Selenium WebDriverWait 不工作,即使元素可見?

為什麼我的 Selenium WebDriverWait 不工作,即使元素可見?

Barbara Streisand
Barbara Streisand原創
2024-12-23 17:24:14678瀏覽

Why Isn't My Selenium WebDriverWait Working, Even Though the Element Is Visible?

WebDriverWait 未按預期工作

使用 selenium 抓取資料時,處理需要時間出現的動態元素至關重要。但是,使用者遇到了一個問題:WebDriverWait 應該暫停執行直到元素可見,但它沒有如預期運作。此問題僅發生在元素可見但 WebDriverWait 無法找到它的孤立實例中。

根據使用者的程式碼,他們使用具有 20 秒延遲的 WebDriverWait 和 Presence_of_element_ located() 方法。元素定位器正在搜尋開啟新視窗的按鈕,允許使用者選擇自訂列。

要解決此問題,建議使用 element_to_be_clickable() 而不是 Presence_of_element_ located ()。 Presence_of_element_ located() 方法僅確保該元素存在於 DOM 上,而 element_to_be_clickable() 則驗證該元素不僅可見而且可點選。此變更應該解決偶爾無法在新視窗中選擇元素的問題,即使它們是可見的。

了解預期條件方法

為了進一步澄清情況,讓我們檢查這三個方法提到:

  1. presence_of_element_ located:
    presence_of_element_ located:
  2. 此方法檢查元素是否存在於頁面的DOM 上,但不保證可見性或互動性。
    visibility_of_element_ located:
  3. 此方法斷言元素存在於 DOM 上並且可見,這意味著它的高度和寬度大於 0。
    element_to_be_clickable:
此方法確認元素可見、啟用且可交互,意味著它可以被點擊。

在這種特定情況下,使用 element_to_be_clickable() 確保自訂列按鈕不僅存在且可見,而且已啟用並可供單擊。這應該可以消除在新視窗中選擇元素時偶爾失敗的情況。

以上是為什麼我的 Selenium WebDriverWait 不工作,即使元素可見?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn