У меня возникают проблемы при выполнении тестов Selenium 2.18 WebDriver для сайта на базе Oracle SSXA, который преобразуется в тонны всплывающих окон, контента, загруженного Ajax, и фреймов. Для данной страницы, основанной на ручном наблюдении, страница изначально загружается с пустым диапазоном sslw_doc_content_id (без текста). Примерно через секунду промежуток все еще существует и содержит текст.
Чтобы убедиться, что эта страница загружена, я использую WebDriverWait с предикатом, который проверяет наличие в пустом тексте диапазона sslw_doc_content_id:
new Predicate<WebDriver>() {
@Override
public boolean apply(final WebDriver input) {
return StringUtils.isNotEmpty(input.findElement(By.id("sslw_doc_content_id")).getText());
}
}
Каким-то образом WebDriver всегда находит WebElement, но всегда возвращает пустую строку при вызове WebElement.getText (). И поэтому этот предикат всегда оценивается как ложный.
Проверка страницы с помощью Chrome или Firefox показывает, что элемент существует и имеет текст. При отладке предиката я заметил, что input.getPageSource () содержит span без текста при первом вызове, но input.getPageSource () содержит span с некоторым текстом при втором вызове (после того, как страница была ajax). -refreshed).
Почему WebDriver не учитывает обновленный источник страницы при втором вызове?
Спасибо!