Sobes.tech
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.