Проблема здесь в том, что когда 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);