У меня есть страница поиска, содержащая таблицу, которая заполняется результатами поиска после нажатия пользователем кнопки поиска. Объект страницы обертывает строки таблицы результатов поиска в пользовательском классе HtmlElement
.Можно ли обновить устаревшие элементы?
Я получаю исключение элементарного элемента при доступе к таблице результатов - как и следовало ожидать, потому что он был просто обновлен с помощью запроса ajax.
Я работал над этим, возвращая новый экземпляр объекта страницы после выполнения поиска, но я бы скорее просто воссоздал поле результатов поиска. Есть какой-либо способ сделать это?
Пример:
@FindBy(css = "[data-viewid='Table1'] .dojoxGridRow")
List<ActivityPerformanceRow> results;
// ...
public void search() {
search.click()
waitForAjaxToComplete();
// If it was a standard WebElement list I'd do something like this:
results = driver.findElements(By.cssSelector(
"[data-viewid='Table1'] .dojoxGridRow"));
}
Какой локатор вы используете при инициализации PageObject? По умолчанию используется AjaxElementLocator, поэтому без проблем с устаревшими элементами, поскольку выполняет поиск элементов по каждому элементу доступа. – artkoshelev