Wie um zu überprüfen, ob ein element ist nicht anklickbar mit Winkelmesser?
Es ist trivial, um zu testen, ob ein element ist anklickbar mit Winkelmesser, aber ich bin stecken, kratzen, mein Kopf versucht herauszufinden, wie um zu prüfen, ob ein element nicht anklickbar.
Ich habe versucht, wickeln Sie die Klick-Funktion in einem try/catch, so dass, wenn ein Fehler geworfen wird, wenn man versucht zu klicken, sollte es zu fangen und lassen Sie den test bestanden hat; dies gilt jedoch nicht funktionieren.
Hier ist mein code für die Methode, die macht den check:
return this.shouldSeeDisabledFunds()
.then(function() {
var clickable = true;
try {
fundsElem.first().click();
} catch (e) {
clickable = false;
console.log(clickable);
} finally {
console.log(clickable);
}
console.log(clickable);
//All the way through, clickable is still true, and the console log in the
//catch is not called. I believe this is because click is asynchronous.
})
;
Tut
Ja, tut es. Ich habe eigentlich gedacht das es jetzt, nach der Realisierung, dass. Ich werde nach einer Antwort die es.
click()
nicht wieder ein Versprechen?Ja, tut es. Ich habe eigentlich gedacht das es jetzt, nach der Realisierung, dass. Ich werde nach einer Antwort die es.
InformationsquelleAutor Seer | 2015-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine Lösung gefunden, die funktioniert. Als
click()
eine Zusage zurückgibt, können Sie einfach.then
von ihm Weg und werfen in der erfolgreichen Klick-Prozedur und überschreiben Sie die catch-handler nichts zu tun, das macht den test übergeben, wenn das element ist nicht anklickbar.InformationsquelleAutor Seer
Vielleicht nicht zutreffend in deinem Fall aber einen besseren Weg, um zu überprüfen, ob ein element klickbar ist wird geprüft, ob es ist sowohl sichtbar und aktiviert sind:
elem.isDisplayed()
undelem.isEnabled()
. Auf diese Weise Sie nicht versehentlich auf Tasten, wenn Sie nicht soll.Fyi, es wird eine Bibliothek kommen, um zu helfen, die mit Fällen wie diesem: https://github.com/angular/protractor/pull/1703
Auch pointer-events: none; willl ein element unklickbaren (Winkelmesser Ausnahme), aber elem.isEnabled() true zurück
InformationsquelleAutor hankduan
Überprüfen Anklickbar : element.isDisplayed().toBe(true)
Nicht Anklickbar : element.isDisplayed().toBe(false)
Arbeitete für mich.
InformationsquelleAutor kesav ragi