Heim >Java >javaLernprogramm >Warum löst mein Selenium WebDriver Gmail-Anmeldetest bei der Passworteingabe eine „ElementNotInteractableException' aus?

Warum löst mein Selenium WebDriver Gmail-Anmeldetest bei der Passworteingabe eine „ElementNotInteractableException' aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 04:36:10261Durchsuche

Why Does My Selenium WebDriver Gmail Login Test Throw an

Selenium WebDriver löst Ausnahme im Thread „main“ org.openqa.selenium.ElementNotInteractableException aus

Problem:

In einem Selenium WebDriver-Testszenario mit dem Ziel zu erfassen und zu testen Bei der Gmail-Anmeldung schlägt der Test mit einer „ElementNotInteractableException“ fehl, wenn versucht wird, das Passwort einzugeben.

Ursache:

Die „ElementNotInteractableException“ wird ausgelöst, wenn der WebDriver auf ein Element trifft mit dem nicht interagiert werden kann, obwohl es im HTML vorhanden ist DOM.

Lösungen:

  • Temporäre Überlagerung: Wenn ein anderes Element das Zielelement vorübergehend überlagert, wird ein ExplicitWait mit ExpectedCondition „elementToBeClickable“ induziert " kann dieses Problem beheben.
  • Permanent Overlay: Wenn das Overlay dauerhaft ist, wandeln Sie den WebDriver in einen „JavascriptExecutor“ um und führen Sie den Klickvorgang über JavaScript aus.

Speziell für dieses Problem:

In diesem Szenario liegt die Ursache darin, dass nicht explizit darauf gewartet wird, dass das Kennwortfeld im HTML-DOM dargestellt werden kann. Das Hinzufügen eines ExplicitWait mit ExpectedCondition „elementToBeClickable“ behebt dieses Problem.

Code-Lösung:

...
WebDriver driver = new FirefoxDriver();
...
// Wait up to 20 seconds for the password field to become clickable
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']")));
password.sendKeys("test1");
...

Durch die Implementierung dieser Lösung sollte der Test reibungslos ablaufen und das Passwort erfassen korrekt eingeben und den Gmail-Anmeldetest abschließen.

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

Stellungnahme:
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