Ich schreibe automatisierte Skripte zum Testen von Web-Anwendungen, die sehr schwer auf Ajax sind. Zum Beispiel wird beim Speichern der Einstellungen ein modaler Dialog mit dem Text "Saving...
" angezeigt, während ein Leuchtkasten den Rest der Seite ausgraut.Selenium WebDriver - Bestimmen, ob Element anklickbar ist (d. H. Nicht durch Dojo-Modal Lightbox verdeckt)
Meine Testskripte versuchen, auf den nächsten Link im Test zu klicken, bevor die Nachricht verschwindet. Es funktioniert fast immer, wenn Firefox fahren, aber wenn Chrome die folgenden Fehler Fahren angezeigt:
Exception in thread "main" org.openqa.selenium.WebDriverException: Element is not clickable at point (99.5, 118.5). Other element would receive the click: <div class="dijitDialogUnderlay _underlay" dojoattachpoint="node" id="lfn10Dijit_freedom_widget_common_environment_Dialog_8_underlay" style="width: 1034px; height: 1025px; "></div> (WARNING: The server did not provide any stacktrace information)
Dies geschieht, weil die Leuchtkasten das Element verschleiern ich klicken Sie möge. Ich möchte warten, bis der Leuchtkasten verschwindet, bevor ich versuche, auf den Link zu klicken.
Die Überprüfung, ob die Lightbox nicht mehr existiert, ist kein gültiger Workaround, da es manchmal mehrere Ebenen von modalen Dialogen und Lightboxen gibt und es keine einfache Möglichkeit gibt, zwischen ihnen zu unterscheiden.
Gibt es eine Möglichkeit im Selenium zu erkennen, ob das Element anklickbar ist (keine anderen Elemente verdecken es)? Ein Versuch/Catch wäre ein Workaround, aber ich würde lieber eine ordnungsgemäße Überprüfung durchführen, wenn das möglich ist.
Letztes Mal habe ich es mit Chrome versucht, es hat nicht funktioniert: die "klickbaren" Bedingung erfüllt ist obwohl andere Ebenen den Klick blockieren. – anttix
funktioniert nicht mit Firefox 20, selen-firefox-driver 2.31.0. Das ElementToBeClickable gibt true zurück, wenn das Element durch einen modalen Dialog blockiert wird. – skong
Es gibt nichts zu Firefox 20 in den Versionshinweisen zu 2.31. Funktioniert es in Firefox 19? –