Selen nie będzie czekać na załadowanie AJAX. Automatycznie oczekuje na załadowanie strony. Aby poczekać na załadowanie typu AJAX, należy użyć opcji oczekiwania na niejawne i jawne.
Można użyć opcji Implicit Wait i Explicit Wait, aby poczekać na określony element sieci Web, dopóki nie pojawi się na stronie. Okres oczekiwania, który można zdefiniować i który jest zależny od aplikacji.
Explicit Wait:
An wyraźne oczekiwania jest kod zdefiniować czekać na pewien warunek, aby wystąpić przed przejściem dalej w kodzie. Jeśli osiągnięty warunek zakończy to oczekiwanie i przejdą dalsze kroki.
Kod:
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(strEdit)));
Albo
WebElement myDynamicElement = (new WebDriverWait(driver, 30))
.until(new ExpectedCondition<WebElement>(){
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.id("myDynamicElement"));
}});
to czeka się do 30 sekund przed wyrzuceniem TimeoutException lub jeżeli stwierdzi, że element będzie zwrócić go w 0 - 30 sekund. WebDriverWait domyślnie wywołuje ExpectedCondition co 500 milisekund, dopóki nie zwróci pomyślnie. Pomyślnie zwrócony jest dla typu ExpectedCondition jest Boolean zwraca true lub nie ma wartości zwracanej dla wszystkich pozostałych typów ExpectedCondition.
Możesz użyć klasy ExpectedConditions zgodnie z potrzebami aplikacji.
niejawny Wait:
Pośrednia oczekiwania jest powiedzieć WebDriver odpytywanie DOM przez pewien okres czasu, próbując znaleźć element lub elementy, o ile nie są one natychmiast dostępne
Code :
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Jedno pamiętać, jest to, że gdy domniemane oczekiwania jest ustawiony - pozostanie on na życiu obj WebDriver ect instancja
Aby uzyskać więcej informacji Użyj tego linku http://seleniumhq.org/docs/04_webdriver_advanced.jsp
You can use these waits during your AJAX loading.
Mam nadzieję, że to będzie pomocne.
Można użyć selenu: Implicit wait i Explicit wait. – Manigandan
@Manigandan Co to jest implicit wait i Expilicit wait? –