Селен Firefoxdriver - ждать AJAX

При тестировании страницы AJAX возникает проблема, как дождаться загрузки страницы.
То, как я нашел в Интернете, - это явное ожидание загрузки определенного элемента.

В htmlunit есть еще один способ - преобразовать весь асинхронный JavaScript в синхронный JavaScript.

 client.setAjaxController(new NicelyResynchronizingAjaxController());

Это более общий характер, поскольку нам не нужно точно знать, какой элемент ждать.
Есть ли способ реализовать это с помощью firefoxdriver.

1 ответ

Вот как вы можете ждать определенного элемента, который загружается в DOM после Ajax-запроса.

Предположим, у вас есть следующее:

<div id="postAjaxRequest">This only appears after something request me!</div>

Все, что вам нужно было сделать, это начать WebDriver а также WebDriverWait Элемент следующий:

WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10); // Starts a wait of a maximum 10 seconds.

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("postAjaxRequest")));
driver.findElement(By.id("postAjaxRequest")).click(); // or any other action

Это самое простое, что я могу объяснить.

Другие вопросы по тегам