У меня есть таблица, которая может отображаться или не отображаться на основе URL. Теперь мой тест проходит по всем заданным URL-адресам. Я должен нажать на кнопку поиска, после чего я проверяю существование таблицы. Мой стол изначально не работал, хотя стол был хорошо виден. Я добавил следующий код для решения этой проблемы:
WebDriverWait wait = new WebDriverWait(data.Driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("abc")));
Boolean tableVisibility = data.Driver.findElements(By.id("12345abcd")).size() > 0;
if (tableVisibility == true) {
result.logInfo("table displaying successfully");
}
Boolean isElmPresent = data.Driver.findElements(By.id("labelMessage")).size() > 0;
if (isPresent == true) {
this.updateDBTbl(abc,xyz);
}
Это утверждение помогло мне решить проблему с загрузкой таблицы. Но сейчас я сталкиваюсь с проблемой, когда таблица не может быть найдена. На самом деле, когда таблица не найдена, мы получаем новую метку с надписью «нам нужно связаться с системной стойкой», о которой я должен сообщить в своей базе данных. Но в случае оператора wait.until, когда он не видит таблицу через 30 секунд, он выдает ошибку и останавливает выполнение. из-за этого ярлык никогда не проверяется. Я прокомментировал оператор wait.until на данный момент и вместо этого добавил Thread.Sleep, который решил эту проблему, но я вовсе не фанат жесткого ожидания. Поэтому мне интересно, есть ли лучший способ справиться с этой проблемой.