IEDriver.Скачать.Тайм-аут запроса HTTP на удаленный сервер WebDriver через 60 секунд - PullRequest
0 голосов
/ 18 сентября 2018

Мой тестовый скрипт перемещается на страницу отчета, где он нажимает кнопку «Скачать отчет».После щелчка по нему в нижней части страницы появляется диалоговое окно загрузки IE.

Проблема в том, что драйвер теряет соединение после нажатия этой кнопки в IE.Ищем некоторые возможные обходные пути.И IEDriver, и пакеты Nuget Webdriver являются поздними версиями.Это C #.Эта проблема только в IE.

Это ошибка, которую я получаю:

OpenQA.Selenium.WebDriverException: HTTP-запрос к удаленному серверу WebDriver для URL http://localhost:52706/session/ea7da8ec-add0-4562-81c2-d2ebc706a073/click истекло по истечении 60 секунд.---> System.Net.WebException: запрос был прерван: для операции истекло время ожидания.

1 Ответ

0 голосов
/ 18 сентября 2018

Проблема здесь в том, что когда IE находится в процессе загрузки файла, readyState браузера никогда не перемещается с interactive на complete, что означает, что обнаружение браузером "ожидания загрузки страницы" никогда не заканчивается , Чтобы остановить это, нужно изменить стратегию загрузки страницы драйвера при создании. Недостатком этого является то, что существует вероятность того, что это повлияет на другие операции, так как драйвер вернется с загрузки страницы раньше, чем ожидает ваш код, поэтому потребуется разумное использование WebDriverWait в других частях вашего кода. Код для установки стратегии загрузки страницы выглядит примерно так:

// DISCLAIMER: Code below written from memory,
// without benefit of Visual Studio or
// another IDE. It might require modification
// to work properly, or even to compile.
InternetExplorerOptions options = new InternetExplorerOptions;
options.PageLoadStrategy = PageLoadStrategy.Eager;
IWebDriver driver = new InternetExplorerDriver(options);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...