Heim > Web-Frontend > js-Tutorial > Warum erhalte ich \'org.openqa.selenium.ElementNotInteractableException\', wenn ich Text an ein Facebook-Eingabefeld sende?

Warum erhalte ich \'org.openqa.selenium.ElementNotInteractableException\', wenn ich Text an ein Facebook-Eingabefeld sende?

Mary-Kate Olsen
Freigeben: 2024-11-27 18:37:12
Original
215 Leute haben es durchsucht

Why Am I Getting

Selenium WebDriver: „org.openqa.selenium.ElementNotInteractableException: Element ist nicht über die Tastatur erreichbar“ beim Senden von Text an das Feld „Vorname“ in Facebook

Dieser Fehler tritt auf, wenn versucht wird, Tasten an ein Eingabefeld zu senden, das über die Tastatur nicht interaktiv ist. In diesem speziellen Fall tritt der Fehler auf, wenn Text an das Feld „Vorname“ auf Facebook gesendet wird.

Grund

Das „Element ist über die Tastatur nicht erreichbar.“ „Fehler können aus verschiedenen Gründen auftreten, darunter:

  • Das Element ist ausgeblendet oder wird von einem anderen verdeckt Element.
  • Das Element ist deaktiviert oder erhält keinen Fokus.
  • Der Browser blockiert möglicherweise aus Sicherheitsgründen die Tastatureingabe für das Element.

Es gibt mehrere Ansätze, dieses Problem anzugehen Problem:

Verwenden Sie WebDriverWait und ExpectedConditions:

Wenn das Element vorübergehend ausgeblendet oder verdeckt ist, verwenden Sie WebDriverWait mit ExpectedConditions, um zu warten, bis das Element sichtbar und anklickbar ist.

Verwenden executeScript():

Wenn das Element dauerhaft ausgeblendet oder verdeckt ist, verwenden Sie die MethodeexecuteScript() der JavascriptExecutor-Schnittstelle, um auf das Element zuzugreifen und es zu bearbeiten.

Stil bearbeiten Attribute:

Wenn das Element aufgrund von CSS-Attributen wie „display: none“ ausgeblendet ist, verwenden SieexecuteScript(), um den Stil zu ändern und zu erstellen Das Element ist sichtbar.

WebDriver-Interaktionsprüfungen deaktivieren (vorübergehend):

Firefox-Funktion moz:webdriverClick kann auf „false“ gesetzt werden, um WebDriver-Interaktionsprüfungen vorübergehend zu deaktivieren. Dies kann für Legacy-Tests erforderlich sein.

Sonderfall: Facebook-Registrierung

Im bereitgestellten Code-Snippet tritt die Ausnahme auf, weil das Feld „Vorname“ hat eine dynamische ID, die sich bei jedem Laden der Seite ändert. Um dieses Problem zu beheben, verwenden Sie eine dynamische Locator-Strategie, die das Element anhand seiner Attribute und nicht anhand seiner ID findet.

Aktualisiertes Code-Snippet:

WebDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com");
driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich \'org.openqa.selenium.ElementNotInteractableException\', wenn ich Text an ein Facebook-Eingabefeld sende?. 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