484 Stimmen

Fehlersuche bei "Element ist an Punkt nicht klickbar"

Ich sehe dies nur in Chrome.

Die vollständige Fehlermeldung lautet:

"org.openqa.selenium.WebDriverException: Element ist an Punkt (411, 675) nicht anklickbar. Ein anderes Element würde den Klick erhalten: ..."

Das Element, das "angeklickt" werden würde, befindet sich neben dem fraglichen Element, nicht darüber und nicht überlappend, und es bewegt sich nicht auf der Seite.

Ich habe versucht, einen Versatz hinzuzufügen, aber auch das funktioniert nicht. Das Element befindet sich im angezeigten Fenster, ohne dass ein Bildlauf erforderlich ist.

1voto

Tom Dickman Punkte 129

Wenn Sie dieses Problem mit einem Modal (Pop-up) haben, beachten Sie, dass es sein kann, dass ein anderes Element mit den gleichen Eigenschaften unter dem aktuellen Top-Level-Modal existiert. Dies fing mich heraus, erhöhen Sie einfach die Spezifität Ihres Selektors, um den Bereich auf das Modal zu reduzieren, das Sie versuchen, nur zu klicken.

1voto

umutesen Punkte 2297

Ich hatte genau dieses Problem beim Klicken auf eine Schaltfläche innerhalb eines Angular Material-Menüs. Wann immer ich eine Schaltfläche innerhalb eines Menüs geklickt, die .cdk-overlay-pane würde den Klick erhalten. Die Lösung ist die Erhöhung der z-index von Schaltflächen innerhalb des Menüs.

.cdk-overlay-pane button {
  z-index: 1001;
}

1voto

Vishal Punkte 121

Es kann viele Faktoren geben, die diesen Fehler auslösen. Erstens kann das Dom geändert werden, nachdem Selenium Webdriver das Element erfasst hat, oder alle Java-Skripte, die in den Elementen verwendet werden, werden nicht erfolgreich geladen, bevor das Element erfasst wird. Um dies zu beheben, müssen wir javascript wait oder ajax wait wie folgt verwenden.

wait = new WebDriverWait(driver, 30);
wait.until((ExpectedCondition<Boolean>) wd -> ((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete"));
        e_driver = new EventFiringWebDriver(driver);

Zweitens versuchen die meisten Ingenieure von Unternehmen, die Software-Qa-Dienste anbieten, Java Script Executor für die Klick-Aktion zu verwenden.

Wenn auch dies nicht funktioniert, führen Sie die Aktion mit der Klasse Actions aus.

1voto

JSDeveloper Punkte 168

Ich hatte die gleiche Ausnahme, als ich versuchte, eine der Optionsschaltflächen auf meiner Seite anzuklicken. Ich verwendete unten Javascript und exeted mit IJavaScriptExecutor. C# Beispiel

string script=" function clickCharity() {"+
"var InputElements = document.getElementsByName('Charity');"+
  "for (i=0; i<InputElements.length; i++){"+
    "if(InputElements[i].getAttribute('value') == 'true')"+
    "{"+
        "InputElements[i].click();"+
    "}"+
"}"+
"}";
var js=WebDriver as IJavaScriptExecutor;
js.ExecuteScript(script);

1voto

Andrey Punkte 745

Sie können den Klick mit JS simulieren:

public void click(WebElement element) {
    JavascriptExecutor js =(JavascriptExecutor)driver;
    js.executeScript("document.elementFromPoint(" + element.getLocation().x + "," + element.getLocation().y + ").click();");
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X