2016-12-02 6 views
3

Die lange und kurze hierfür ist, wenn ich versucheSelen: Element nicht anklickbar ... Andere Element Würde Klicken Sie erhalten, klicken Sie auf jeden Fall

return this.driver.findElement(By.css("div[class*='img']")).click(); 

ich einen Fehler Uncaught WebDriverError: unknown error: Element is not clickable at point (525, 889). Other element would receive the click:...

bekommen verwenden Wie kann ich sowieso klicken und lass das "andere Element" den Klick erhalten? Ich benutze webdriverjs.

Die Begründung dahinter ist im Grunde die Website, die ich testen, tut einige ausgefallene Reaktion Zeug, die den Link irgendwie verdeckt. Grundsätzlich, anstatt einen Link zu einem Bild anzuhängen, wird das gesamte Bild mit einer transparenten Box abgedeckt, die Sie irgendwo verbindet (fragen Sie mich nicht warum). Wenn Sie auf das Bild klicken, sind Sie nicht tatsächlich Klicken Sie auf das Bild, aber aus Sicht eines Benutzers sind sie ein und dasselbe.

Als ich webdriverIO wurde mit konnte ich

browser.moveToObject("img"); browser.leftClick();

sagen, aber wir ziehen weg von diesem. Ich habe auch versucht

this.driver.findElement(By.css("div[class*='img']")); 
    return this.driver.actions().click().perform(); 

aber es scheint nichts zu tun.

Es gab viele Fragen zu diesem Fehler, aber ich habe noch niemanden gesehen, der möchte, dass Sie trotzdem klicken.

+0

Ich sehe Sie eine Antwort gefunden, und das ist, was ich habe auch vorgeschlagen. Ich bin wirklich überrascht, dass 'actions()' nicht funktioniert hat. Das sollte mein zweiter Vorschlag sein, bevor ich deine Frage noch einmal gelesen habe und gesehen habe, dass du es bereits versucht hast. – JeffC

+0

Ja, das war seltsam, weil es keinen Fehler verursacht hat, es schien einfach nichts zu tun – Sarah

Antwort

4

In einem klassischen Fall von stundenlang nach einer Antwort suchen, eine Frage veröffentlichen, und sofort eine Antwort nach der Feststellung, fand ich eine Arbeit um:

var mylink = this.driver.findElement(By.css("div[class*='img']")); 
return this.driver.executeScript("arguments[0].click();", mylink); 
Verwandte Themen