Junior — Middle
Ako predísť výskytu NotInteractableException pri automatizácii testov pomocou Selenium?
sobes.tech AI
Odpoveď od AI
Výnimka NotInteractableException v Selenium nastáva, keď je pokus o interakciu s prvkom nemožný — napríklad, ak prvok nie je viditeľný, je prekrytý iným prvkom alebo je deaktivovaný.
Aby ste sa tejto chybe vyhli, môžete:
- Uistiť sa, že prvok je viditeľný a dostupný na interakciu, pomocou explicitných čakaní (Explicit Wait) s podmienkami viditeľnosti alebo klikateľnosti:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'element_id')))
element.click()
- Skontrolovať, či prvok nie je prekrytý inými prvkami (napríklad vyskakovacími oknami alebo načítaniami).
- Použiť JavaScript na interakciu s prvkom, ak štandardné metódy nefungujú:
driver.execute_script("arguments[0].click();", element)
- Uistiť sa, že stránka je úplne načítaná a všetky dynamické prvky sú pripravené na interakciu.
Správne používanie čakaní a kontrola stavu prvkov pomáha predísť NotInteractableException.