首頁 >後端開發 >Python教學 >為什麼在 Chrome 中使用 Selenium 時會出現「selenium.common.exceptions.NoSuchElementException」?

為什麼在 Chrome 中使用 Selenium 時會出現「selenium.common.exceptions.NoSuchElementException」?

Susan Sarandon
Susan Sarandon原創
2024-12-27 09:55:10788瀏覽

Why Am I Getting a

在 Chrome 上執行 Selenium 時出現「selenium.common.exceptions.NoSuchElementException」

Selenium 在無法在 HTML DOM 中定位元素時會出現「NoSuchElementException」。在這種情況下,您在使用 Chrome 使用 Selenium 玩 QWOP 時遇到此錯誤。

原因

您提供的 Selenium 程式碼使用「find_element_by_id」來定位「window1」元素。但是,此定位器可能無法唯一標識 DOM 中的元素,從而導致「NoSuchElementException」。

解決方案

要解決此問題,您可以使用更具體的定位器策略,例如:

  • XPath: // canvas[@id='window1']
  • CSS選擇器: canvas#window1

此外,確保元素可見且位於視口內在嘗試找到它之前。如有必要,請使用具有預期條件(如 element_to_be_clickable)的 WebDriverWait 來等待元素可點擊,然後再與其互動。

Chrome 特定情況

在這種特定情況下,您需要等待「window1」畫佈在單擊之前可單擊:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//canvas[@id='window1']"))).click()

其他注意事項

  • 元素可見性:元素可能隱藏或在螢幕外。確保它在視窗內可見。
  • IFrames: 檢查元素是否位於 iframe 內。如果是這樣,您需要先切換到適當的框架。
  • 時機:元素可能不會立即出現在 DOM 中。使用具有適當預期條件的 WebDriverWait 來等待元素的存在或可見性。

以上是為什麼在 Chrome 中使用 Selenium 時會出現「selenium.common.exceptions.NoSuchElementException」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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