Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

download
java
selenide
Теги: #<Tag:0x00007fedbacbaf20> #<Tag:0x00007fedbacbade0> #<Tag:0x00007fedbacbac28>

(Irina Kuznechikova) #1

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


(asolntsev) #2

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

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


(Irina Kuznechikova) #3

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


(asolntsev) #4

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


(Irina Kuznechikova) #5

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