Я говорю Selenium подождать, пока он не увидит элемент - Selenium видит его Я говорю Selenium нажать на этот элемент, это кнопка для ссылки на новую страницу - Selenium нажмите на нее.
Проблемазаключается в том, что после нажатия кнопки Selenium будет ждать полной загрузки следующей страницы (иногда страница загружается за секунду или ждет целую вечность, я думаю, что это проблема с Zen Desk Live Chat на этой странице).
Когда он полностью загружен, он выдаст ошибку и скажет, что элемент, по которому он щелкнул, не виден (естественно, не может, потому что теперь он находится на новой странице)
Iпопытался изменить время ожидания с помощью
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
, однако это не помогает.Я также пытался
wait.until(ExpectedConditions.visibilityOfElementLocated(
By.xpath(element)));
Однако с этой же проблемой.
Ниже приведен код, который я сейчас использую.
try {
wait.until(ExpectedConditions.visibilityOfElementLocated(
By.xpath(element)));
WebElement we = driver.findElement(By.xpath(element));
we.click();
System.out.println("Clicked: " + element);
}catch (Exception e){
System.out.println(e.getMessage());
}
Я ожидаю, что когда-то элементбыло нажато, что Selenium просто продолжает без заботы, загружена ли следующая страница или нет.
Однако, что происходит, когда загружается 2-я страница, иногда страница застревает, ожидая виджета-посредника.zopim.com "и Selenium не будет проходить дальше строки click (), пока не истечет время ожидания WebDriverWait (60 секунд). По истечении 60 секунд я вижу эту ошибку в выводе консоли:
[1561374309.111][SEVERE]: Timed out receiving message from renderer: 60.000
[1561374309.112][SEVERE]: Timed out receiving message from renderer: -0.002
Здесь что-то еще происходит?Или Click () ждет загрузки страницы, если этот щелчок переносит ее на новую страницу?Если это так, есть ли способ заставить его перестать ждать?У меня есть другой код, чтобы проверить, была ли страница загружена или нет, но мне не нужно нажимать (), чтобы сделать это.
Заранее спасибо.