У меня есть тег контента с некоторыми данными (данные каждый раз новые), которые обновляются после нажатия какой-либо кнопки. На бэкэнд-сервер отправлено XHR, и я хочу дождаться ответа и продолжить. Нужно проверить, какие данные я получаю с внутреннего сервера, но я не могу сравнить первые инициализированные данные с новыми данными, потому что я не знаю инициализированных данных и новых данных.
Я думаю, что могу записать в переменных - инициализированные данныеи новые данные. Тогда я буду сравнивать с данными на странице, пока данные не изменились. Но если это будут те же данные, эта ситуация может быть плохой, тест будет неправильным.
Попробуйте это:
ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
try {
return ((Long)((JavascriptExecutor)driver).executeScript("return jQuery.active") == 0);
}
catch (Exception e) {
// no jQuery present
return true;
}
}
};
ExpectedCondition<Boolean> jsLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor)driver).executeScript("console.log(document.readyState); return document.readyState")
.toString().equals("complete");
}
};
Я получаю "Complete" в консоли, прежде чем получить ответ от бэкэндасервер.