Heim > Web-Frontend > js-Tutorial > Warum löst mein WebDriver eine ElementNotInteractableException aus?

Warum löst mein WebDriver eine ElementNotInteractableException aus?

Susan Sarandon
Freigeben: 2024-12-07 11:17:13
Original
124 Leute haben es durchsucht

Why is My WebDriver Throwing an ElementNotInteractableException?

ElementNotInteractableException: Element ist über die Tastatur nicht erreichbar

Verstehen des Fehlers

Dieser Fehler tritt auf, wenn WebDriver nicht interagieren kann mit einem Element über die Tastatur. Dies kann daran liegen, dass das Element ausgeblendet, verdeckt oder nicht fokussierbar ist.

Gründe für den Fehler

  • Element ist ausgeblendet:Entweder vorübergehend von einem anderen Element verdeckt oder dauerhaft ausgeblendet.
  • Permanente Überlagerung vorhanden:Ein Overlay-Element blockiert den Zugriff auf das gewünschte Element.
  • Attribute, die die Interaktion verhindern:Attribute wie class="ng-hide" oder style="display: none" deaktivieren die Interaktion .
  • Versuche, auf Elemente wie

    zu klicken oder

    : Klicks an senden Tags stattdessen.

Lösungen

  • Temporäre Überlagerung: Verwenden Sie WebDriverWait und ExpectedConditions, um zu warten, bis das Element sichtbar wird/ anklickbar.
  • Permanente Überlagerung: Verwenden Sie „executeScript()“ von JavascriptExecutor, um style="display: none" auf style="display: block" zurückzusetzen.
  • Attribute, die Interaktion verhindern: Verwenden Sie „executeScript()“ von JavascriptExecutor, um Attribute zu ändern und Interaktion ermöglichen.

Für dieses spezielle Problem (Facebook Registrierung)

Aufgrund von React Native-Elementen auf der Facebook-Anmeldeseite ist eine dynamische Locator-Strategie erforderlich:

driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
Nach dem Login kopieren

Update mit moz:webdriverClick

Firefox-Funktion moz:webdriverClick ermöglicht die Deaktivierung der WebDriver-konformen Interaktionsfähigkeit prüft:

DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("moz:webdriverClick", false);
WebDriver driver = new FirefoxDriver(dc);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum löst mein WebDriver eine ElementNotInteractableException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage