Selen waitForCondition
Mache ich Selenium Tests für die erste Zeit. Auf der homepage, rufe ich einige AJAX, und ich möchte, dass Selen zu warten, um das element zu laden, fertig. Ich nicht sicher, dass es funktioniert, aber ich tippe einfach Selen und die waitForCondition in der Lage sind, zu wählen.
Ich nicht, egal was ich wähle es immer wieder "falsch". Ich weiß jetzt aber nicht ob die waitForCondition noch arbeiten?
Wie kann ich testen, ob es funktioniert?
Und was mache ich falsch, in diese codes?
selenium.waitForCondition("//input[@name='Report'", "3000");
selenium.waitForCondition("//*[@id='MyTable']", "3000");
selenium.waitForCondition("css=.someClass2", "3000");
Wenn ich implementieren, indem Sie eine eigene Klasse - es "true" zurückgegeben
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
isElementPresent(Durch.xpath("//*[@id='MyTable']")) - "true" zurückgegeben
InformationsquelleAutor boje | 2012-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
waitForCondition
ist für Javascript-Aufrufe nur, nicht für das warten auf die Elemente, um zu laden.Was haben Sie in
isElementPresent
ist in Ordnung. Ich würde es kombinieren mit der expliziten wartet ein bisschen genauer darüber, Wann ein element ist eigentlich geladen und auf dem Bildschirm angezeigt:http://seleniumhq.org/docs/04_webdriver_advanced.html
diese Lösung funktioniert. Ich bin upvoting. Vielen Dank für die Lösung.
InformationsquelleAutor Arran
C#
Kannst du es so machen:
Zunächst können Sie festlegen timeout-Wert für die Bedingung ein.
Dann können Sie die Bedingung.
ODER
Thats all.
InformationsquelleAutor Mohsin Awan
Kannst du es so machen :
Dieser wartet, bis das zu ladende element bis zu 30 Sekunden.
Sollte es funktionieren..Zum testen ajax-basierte Anwendung, die ich immer bevorzugen diese Methode..Siehe Diesen Link seleniumwiki.com/selenium-rc/using-selenium-waitforcondition
InformationsquelleAutor Abhishek_Mishra
Hoffe, das funktioniert für Sie
});
Dieser wird prüfen, ob die jQuery-Bibliothek hat alle aktiven AJAX-Anfragen, die für 30 Sekunden.
InformationsquelleAutor Sachin
Aaran verwiesen Sie auf die korrekte Dokumentation für Selenium WebDriver wartet.
Können Sie sehen, dass Sie schreiben auch über ExpectedConditions Klasse. Diese enthält mehrere hilfreiche und Umsetzung von ExpectedCondition Klassen, wie das "element", die ist ExpectedConditions.presenceOfElementLocated .
Hier ist ein Beispiel für die Verwendung:
Wenn Sie finden es zu ausführlich, nicht warum Sie nur umgestalten und extrahieren Sie eine Funktion, die akzeptieren das element locator und die webdriver, und gibt Sie das element?
DriverWait.bis() akzeptieren einen ExpectedCondition Instanz ist wie ein Weg dar, eine Prädikat-Funktion, nur tun es durch eine Klasse, oder in der Dokumentation Beispiel eine anonyme verschachtelte Klassen, da unter Java Sie können nicht senden Sie eine Funktion.
Den ExpectedCondition "Funktion" übergeben Sie auch einen Wert zurückgibt, was nützlich sein kann, im Fall Sie darauf warten, dass ein Zustand auf ein element (oder einen anderen Wert aus der WebDriver), so der Rückkehr ersparen Sie sich einen extra-Aufruf.
Aus irgendeinem Grund habe ich nicht
Welche version von selenium verwenden Sie? Getestet habe ich den code auf 2.25.0, durch maven, aber es ist verfügbar zum download auf seleniumhq.org/download
Es ist in selenium-java-2.25.0.jar aus selenium.googlecode.com/files/selenium-java-2.25.0.zip
Ich vergaß hinzuzufügen, der Fahrer: selenium-java-2.25.0.jar. Ihr Beispiel funktioniert jetzt perfekt.. Danke.
InformationsquelleAutor Amitay Dobo
Versuchen Sie einmal dieses:
InformationsquelleAutor Vinay Kumar VVS