pageLoadTimeout не работает в Selenium - Java - PullRequest
0 голосов
/ 09 октября 2018

Я тестирую веб-сайт на хосте Linux. Страница, к которой я обращаюсь, загружается бесконечно, поэтому я пытаюсь установить pageLoadTimeout для селена.Firefox запускается правильно, но URL не загружается / не перемещается / не добавляется в url bar.just пустое окно Firefox. Я также не вижу никаких ошибок.

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
driver.get("http://www.example.com");

Однако, если я удаляю driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS); код работает нормально

Версия Selenium: 3.14.0;

драйвер геккона: 18 - linux (тестируется с gecko 16,17, тоже проблема)

браузер: firefox-52

os / platform: linux

Если возникла какая-то проблема, как мне убедиться, что мой драйвер завершил работу через 5 минут. Хост будет поддерживать только Firefox 52.

Я проверял это ссылка но не решает мою проблему.

Спасибо Jk

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы не упомянули url , к которому пытаетесь получить доступ, но pageLoadTimeout для Selenium работает, как ожидается, с With Selenium v3.14.0 , GeckoDriver v0.23.0 и Firefox Quantum v62.0.3 комбинация.Я могу увидеть ожидаемый вывод на консоли в следующем примере, который печатает TimeoutException произошла.Выход из программы каждый раз, когда срабатывает pageLoadTimeout :

0 голосов
/ 10 октября 2018

Вы можете установить стратегию загрузки страницы для браузера, которая будет заставлять страницу не ждать полной загрузки страницы для выполнения других ваших команд Selenium.Ниже приведен пример кода на Java.Существует три поддерживаемых значения:

normal

Это состояние заставляет Selenium ожидать полной загрузки страницы (загружается и анализируется html-контент и субресурсы).

eager

Это состояние заставляет Selenium ожидать события DOMContentLoaded (загружается и анализируется только html-контент).

нет

Эта стратегия заставляет Selenium возвращаться сразу после того, как исходное содержимое страницы полностью получено (загружено html-содержимое).

По умолчанию, когда Selenium загружает страницу, оно следует normal pageLoadStrategy.

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("pageLoadStrategy", "eager");
FirefoxOptions opt = new FirefoxOptions();
opt.merge(caps);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.google.com/");

Если вас интересует только HTML-код страницы, лучше используйте стратегию "нетерпеливый".

...