Ich erstelle ein automatisiertes Testprogramm mit webdriverjs einer Anwendung, wo die 'Next' Schaltflächen oft für eine Zeit deaktiviert und dann aktiviert sind. Die Automatisierung wartet darauf, dass die Schaltfläche aktiviert wird, und klickt dann auf die Schaltfläche.Was ist der beste Weg in Selenium WebDriver zu warten, bis Schaltflächen aktiviert sind?
Die Klasse eines Knopfes insbesondere schaltet ab: ‚BTN-next deaktiviert btn‘ zu
Ich habe kommen mit der folgenden Lösung, aber frage mich ‚BTN-next btn‘, wenn eine bessere Art und Weise war es?
browser.wait(until.elementLocated(By.css('nav a[class="btn btn-next"]')),
timeout, 'button still disabled after timeout').then(function() {
browser.findElement(By.css('nav a[class="btn btn-next"]')).click();
});
Das scheint den Trick zu tun.
Ursprünglich war meine Idee Funktion auszuführen, wie:
tryToClick = function(element){
var classValue = element.getAttribute("class");
isDisabled = classValue.search('disabled') !== -1 ? true : false;
if(isDisabled){
setTimeout(function() {
tryToClick(element);
}, 500);
} else {
element.click();
}
}
jedoch Methoden wie Suche, Split, enthält, etc zu Fehlern geführt. Weiß jemand warum?