Как дождаться, пока элемент будет найден, так как разница во времени загрузки страницы

Я работаю над тестированием сайта электронной коммерции, и у меня есть скрипт, работающий в селене с использованием структуры testng. Иногда скрипт работает нормально, а через некоторое время страница загружается медленнее и не показывает ни одного найденного элемента. Что мне делать, чтобы оптимизировать текущий код? Любая помощь

0
0
36
2

Ответы 2

Вы можете использовать WebDriverWait

Он будет ждать, пока не будет выполнено определенное условие. Код ниже будет ждать, пока элемент не станет видимым:

WebElement element = driver.findElement(By.id("some-valid-element-id"));

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOf(element));

Хорошей практикой является использование тайм-аута загрузки страницы при переходе на новую веб-страницу. он будет ждать, пока загрузится весь элемент, или до 40 секунд. поэтому в основном он будет проверять два условия

  1. пока все элементы не будут загружены
  2. до 40 сек. (вы можете дать время в соответствии с вашими требованиями)

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);

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