Перейти к содержимому

Фотография

Скачивание файлов селениумом через headless режим C#

C# Webdriver headless download

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 01 июня 2018 - 06:03

Коллеги, доброго времени суток.

 

Есть метод, который выполняет следующее:


1) Лочит блок кода, в котором происходит:
а) Запоминание количества файлов в директории
б) Клик по кнопке, в результате которого начинается скачивание файла и ожидание, пока файл скачается целиком
в) Сравнение двух коллекций - до скачивания и после - получаем разницу в 1 файл, дёргаем искомый файл.
2) Выходим из лока и работаем дальше с этим файлом.

 

Всё работает хорошо, пока не установить запуск хрома в режиме headless: chromeOptions.AddArgument("--headless");

Я нашёл в репо селениума открытый баг https://github.com/S...ium/issues/5159 в котором пока судя по всему нет решения проблемы.

 

Есть ли какие-то костыльные workaround, как скачать файл в этом режиме сейчас?

 

Версии драйвера, браузера последние.


  • 0

#2 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 01 июня 2018 - 08:17

наверное "скачивание файлов используя Селениум" это и есть "костыль"?

 

файлы можно просто скачать через URL

 

да и вообще обычно не нужен интерфейсный тест который качает файлы


  • 0

#3 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 01 июня 2018 - 08:26

Я не спрашивал, нужен этот тест или не нужен.

 

У меня тест - имитация действий пользователя.

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

 

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

 

Что же в этом костыльного? :) 


  • 0

#4 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 01 июня 2018 - 10:02

 

 

Что же в этом костыльного? :) 

если файл генерится в бэк-энде, то там его и можно проверить интеграционными тестами например


  • 0

#5 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 01 июня 2018 - 10:24

 

 

 

Что же в этом костыльного? :) 

если файл генерится в бэк-энде, то там его и можно проверить интеграционными тестами например

 

 

Да, но если он не генерится по нажатию кнопки при этом, что в этом случае сказать? "Сорри, я проверял только бизнес-логику"? 

 

Нужен именно вариант с интерфейсом, иначе я бы не парился :)

Сейчас я просто убрал headless режим, но без него хром явно медленнее соображает.


  • 0



Темы с аналогичным тегами C#, Webdriver, headless, download

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных