首頁 >後端開發 >Python教學 >Selenium 如何有效地等待元素出現、可見且可互動?

Selenium 如何有效地等待元素出現、可見且可互動?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-27 12:21:11372瀏覽

How Can Selenium Efficiently Wait for Elements to Be Present, Visible, and Interactable?

Selenium:等待元素存在、可見且可交互

在 Selenium 中,使用 sleep() 等待元素出現是不可取的。 Selenium API 提供了更明確的等待機制,確保您的測試可靠且穩健。

等待元素出現

等待元素出現存在於 DOM 中,使用 WebDriverWait 和 EC.presence_of_element_ located()方法:

WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()

等待元素可見

要等待元素可見且其大小大於 0,請使用 EC.visibility_of_element_ located( ):

email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css"))).get_attribute("value")

等待元素可點選

要等待元素可見並啟用,請使用EC.element_to_be_clickable():

WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()

使用明確等待

在瀏覽器中,這些等待指令將暫停測試的執行,直到滿足指定的條件或發生逾時。明確等待有幾個好處:
  • 它可以防止使用 sleep(),這會使測試不可靠。
  • 它允許更精確的等待標準,提高測試準確性。
  • 即使某個元素花費的時間比預期長,它也能讓測驗繼續進行出現。

參考文獻:

  • [WebDriverWait無法正常運作預期](https://stackoverflow.com/questions/38873537/webdriverwait-not-working-as-expected)
  • [Selenium:檢查元素是否存在](https://www.tutorialspoint . com/selenium/selenium_webdriver_wait_commands.htm)

以上是Selenium 如何有效地等待元素出現、可見且可互動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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