在自動化測試中,ElementNotInteractableException是一個常見的異常,它通常發生在嘗試與網頁上的某個元素進行交互(例如點擊、輸入等操作)時,但由于該元素當前不可交互。這可能由多種原因引起,以下是一些常見的原因及其解決方法:
- 元素未完全加載
如果嘗試與頁面上的元素交互,但該元素尚未完全加載,那么可能會導致此異常。
解決方法:
等待元素加載:使用顯式等待(Explicit Wait)或隱式等待(Implicit Wait)確保元素在嘗試交互前已完全加載。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
顯式等待
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, “myElementId”))
)
element.click()
2. 元素被遮擋或位于不可見區域
如果元素位于其他元素上方或被其他元素遮擋,它可能不可交互。
解決方法:
檢查元素位置和可見性:使用JavaScript來檢查元素是否可見,或者將其滾動到視圖中。
element = driver.find_element(By.ID, “myElementId”)
driver.execute_script(“arguments[0].scrol