Selenium удаленно скачать файл в IE С#

Я хочу удаленно запустить тест загрузки в IE. Я ищу любой способ сделать это (на удаленной машине), даже если мне придется использовать другой инструмент, такой как autoit (который не кажется точным в отношении удаленного аспекта).

Моя проблема: когда IEWebdriver нажимает кнопку загрузки, он открывает диалоговое окно, чтобы запросить Save as, Open или Cancel, но я не могу нажать на них. Логика пользовательского интерфейса сделана на angularJS. После нажатия на кнопку происходит генерация события ng-click и вызываются методы, которые получают файл с сервера. Поэтому я не могу сам построить запрос к серверу, получить документ и сохранить его в нужную директорию.


person Андрей Кучик    schedule 07.03.2019    source источник


Ответы (2)


Как правило, есть два способа заставить браузер автоматически загружать файлы без запроса подтверждения.

В настоящее время я не тестирую драйвер Internext Explorer, но я совершенно уверен, что вы должны вручную настроить браузер на вкладке настроек, сказав ему НЕ запрашивать загрузки определенного типа.

Selenium не может отклонить этот тип предупреждений самостоятельно, подобно предупреждению браузера в основном потоке пользовательского интерфейса.

Некоторые драйверы браузера, такие как Firefox, позволяют установить это поведение как в настройках браузера, так и из объекта FirefoxProfile, переданного в конструктор драйвера. Вот пример того, как это можно сделать в Firefox:

                FirefoxProfile profile = new FirefoxProfile();
                profile.SetPreference("browser.download.dir", "%path%");
                profile.SetPreference("browser.download.folderList", 2);
                profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv,application/pdf,application/octet-stream,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

Это не решает вашу проблему напрямую, так как у меня сейчас нет возможности поиграть с этим, чтобы что-то подтвердить, но это должно помочь вам указать правильное направление.

person Asyranok    schedule 12.03.2019
comment
Я думаю, что этот способ не подходит. Я не могу вручную настроить браузер на вкладке настроек, сказав ему НЕ запрашивать загрузки определенного типа. Потому что это может повлиять на выполнение других тестов. - person Андрей Кучик; 13.03.2019

Всплывающее окно IE управлялось собственным кодом IE, мы не можем вызывать эти методы с помощью Selenium. Если вы хотите загрузить файл в IE, вы можете рассмотреть другие инструменты, такие как Reboot, AutoIT, для обработки элементов управления IE.
Пожалуйста, обратитесь к этим документам:

http://ardesco.lazerycode.com/testing/webdriver/2012/07/25/how-to-download-files-with-selenium-and-why-you-shouldnt.html

Загрузить файл в IE с помощью Selenium

person Will Shao - MSFT    schedule 09.04.2019