t.me/atinfo_chat Telegram группа по автоматизации тестирования

Selenide Download: Как скачать файл, если требуется быть авторизованным

Теги: #<Tag:0x00007f7487db3960> #<Tag:0x00007f7487db37d0> #<Tag:0x00007f7487db3690>

Делаю скачивание файла так: $(“a[href=‘link_to_file’”).download();
Проблема в том, что скачиваемый файл доступен по ссылке только авторизованному пользователю. В итоге скачивается не требуемый файл, а html страничка авторизации. Для выполнения теста используется докер-контейнер с браузером Chrome v.58.0 (Selenoid).
Подскажите, пожалуйста, как все-таки скачать нужный файл?

А вы в тесте авторизировались этим пользователем (перед тем, как вызвать метод download)?

Дело в том, что селенидовский метод download добавляет к запросу все cookie, которые есть в вебдрайвере. Так что для приложения это выглядит как авторизированный пользователь. В общем, должно работать. :slight_smile:

Да, в тесте пользователь авторизован, так как до скачивания файла, успешно проходят шаги с действиями над другими элементами страницы. Расследование показало, что для успешного выполнения запроса требуется хэдер User-Agent, а селенидовский метод download к запросу его не добавляет.
Ну и да, все верно скачивание файлов работает :slightly_smiling_face:, когда требуются лишь только куки для авторизации.

О, так что, считай, feature request. Нужно добавить в Selenide заголовок User-Agent.
Я завёл тикет на гитхабе: https://github.com/codeborne/selenide/issues/639

4 Симпатий

:slightly_smiling_face: Большое спасибо!!! Будем ждать ) А пока вышли из ситуации переопределением executeHttpRequest.