Я тестировал приложение, включающее несколько вызовов ajax, поэтому мне потребовалось условие ожидания, чтобы элементы присутствовали / были видны после выполнения вызова ajax. Я использовал оба метода implicitwait
и explicitwait
, но ни один из них, похоже, не работает для меня, поскольку одно или другое исключение генерируется следующим образом:
1.Не удается найти элемент
2.Элемент отключен и поэтому не может использоваться для действий
Неявное ожидание используется следующим образом:
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
WebElement we = driver.findElement(By.name("q"));
ПРОБЛЕМА:
Когда я тестирую этот код, после открытия браузера он выдает исключение через 2 секунды.
Результат: сгенерировано исключение
Явное ожидание
WebDriverWait wait = new WebDriverWait(driver, /*seconds=*/3);
WebElement element = wait.until(presenceOfElementLocated(By.name("q"));
ПРОБЛЕМА:
Когда я тестирую этот код, после открытия браузера он выдает исключение через 2 секунды
Результат: сгенерировано исключение.
Также используется visibilityOfElementLocated, но он не работает для меня.
Кто-нибудь сталкивался с этой проблемой или у кого-нибудь есть решение для этого ??