Selen wird nicht auf AJAX laden warten. Es wartet automatisch auf das Laden einer Seite. Um auf das Laden des AJAX-Typs zu warten, müssen Sie implizit und explizit warten.
Sie können implizites Warten und explizites Warten verwenden, um auf ein bestimmtes Webelement zu warten, bis es auf der Seite angezeigt wird. Die Wartezeit, die Sie definieren können, hängt von der Anwendung ab.
Explicit Warten:
eine explizite wartet ist Code, den Sie definieren, zu warten, bis eine bestimmte Bedingung, bevor Sie fortfahren weiter im Code auftreten. Wenn die Bedingung erfüllt ist, wird die Wartezeit beendet und die weiteren Schritte ausgeführt.
Code:
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(strEdit)));
Oder
WebElement myDynamicElement = (new WebDriverWait(driver, 30))
.until(new ExpectedCondition<WebElement>(){
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.id("myDynamicElement"));
}});
Diese wartet bis zu 30 Sekunden, bevor Sie einen Timeout werfen oder wenn es das Element findet kehrt es in 0-30 Sekunden. WebDriverWait ruft die ExpectedCondition standardmäßig alle 500 Millisekunden auf, bis sie erfolgreich zurückgegeben wird. Eine erfolgreiche Rückgabe ist für den ExpectedCondition-Typ Boolean return true oder nicht null return value für alle anderen ExpectedCondition-Typen.
Sie können die ExpectedConditions-Klasse verwenden, die Sie für die Anwendung benötigen.
Implizite Warten:
Eine implizite Warten ist WebDriver zu sagen, das DOM für eine gewisse Zeit abzufragen, wenn man versucht, ein Element oder Elemente zu finden, wenn sie
-Code nicht sofort verfügbar sind :
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Eine Sache im Auge zu behalten ist, dass, sobald die implizite Warte gesetzt - es ist für die gesamte Lebensdauer des WebDriver obj bleiben Link Instanz ect
Für weitere Informationen verwenden http://seleniumhq.org/docs/04_webdriver_advanced.jsp
You can use these waits during your AJAX loading.
Ich hoffe, dass dies hilfreich sein wird.
Sie können Selen implizite warten und explizite warten. – Manigandan
@Manigandan Was ist implizit warten und Expilicit warten? –