首頁 > 後端開發 > Python教學 > 為什麼在 Firefox 中工作時,我的 Selenium Chrome 測試會失敗並出現 NoSuchElementException?

為什麼在 Firefox 中工作時,我的 Selenium Chrome 測試會失敗並出現 NoSuchElementException?

Mary-Kate Olsen
發布: 2024-12-24 22:58:18
原創
528 人瀏覽過

Why Does My Selenium Chrome Test Fail with a NoSuchElementException While Working in Firefox?

NoSuchElementException:使用Selenium 和Chrome 時無法定位元素

使用Chrome 執行以下錯誤 >:

selenium.common.exceptions.NoSuchElementException: 
Message: no such element: Unable to locate element
{"method":"id","selector":"window1"
登入後複製
此錯誤表示Selenium無法找到由“id”定位器與選擇器“window1”。儘管可以在 Firefox 上運行,但該問題在 Chrome 上仍然存在。

NoSuchElementException 的原因:

NoSuchElementException 可能會在以下情況下出現:

    定位器無法識別元素。
  • 此元素在瀏覽器視窗中不可見。
  • 由於“display: none;”,該元素不可見
  • 定位器策略不會唯一標識所需的元素,而是查找隱藏或不可見的元素。
  • 元素駐留在

此用例的解決方案:

在此在特定場景中,「window1」畫布無法透過其ID 定位,因為定位器無法唯一標識它。要解決此問題,請使用以下程式碼區塊:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//canvas[@id='window1']"))).click()
登入後複製
此程式碼使用 WebDriverWait 等待畫布可單擊,然後再按一下它。

其他故障排除提示:

    驗證 HTML 中是否存在「window1」畫布使用元素檢查工具進行 DOM。
  • 確保元素可見且不被其他元素或樣式屬性隱藏。
  • 如果元素位於 iframe 內,請在與互動之前切換到正確的 iframe元素。
  • 使用明確等待來確保元素在Selenium 嘗試交互之前出現在頁面上
透過解決這些潛在問題,您可以使用Selenium 成功定位元素並與元素交互,並避免NoSuchElementException。

以上是為什麼在 Firefox 中工作時,我的 Selenium Chrome 測試會失敗並出現 NoSuchElementException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板