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

Фотография

File upload: каким инструментом пользоваться для указания пути к файлу

uploadwebdriver selenium autoit sikuli

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

#1 evaiz

evaiz

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 06 февраля 2018 - 14:53

Добрый день.

 

Есть web-сайт, который предполагает загрузку файла на сервер. В интерфейсе нужно нажать на кнопку Browse. При нажатии на эту кнопку открывается стандартный диалог выбора файла в Windows. Надо либо выбрать файл в дереве каталогов мышью, либо ввести путь к файлу в поле File name. Далее, надо нажать кнопку Open. WebDriver эти контролы в диалоге Windows не видит. Пока вижу два варианта для ввода полного пути к файлу и нажатия Open: 1) использовать Sikuli; 2) использовать AutoIt. Оба эти варианта нестабильны. Нужно думать о том, чтобы окна были не свернуты, к примеру - иначе их не увидит Sikuli. Ввод текста тоже нестабилен, если в момент ввода текста какой-нибудь мусор попал в clipboard. Есть еще вариант: заливать файл через какой-нибудь Post-запрос, но это трудно реализуемо, потому что на сайте есть аутентификация/шифрация по токену и реализовать это на клиентской стороне маловероятно.

 

В связи со всем этим вопрос: какими инструментами вы пользуетесь в подобных случаях? Есть ощущение, что в двух соснах плаваю, и есть какие-то более простые, но надежные решения.

 

Спасибо,

evaiz


  • 0

#2 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 06 февраля 2018 - 16:10

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


  • 0

#3 evaiz

evaiz

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 06 февраля 2018 - 17:14

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

 

Нет, речь идет не о скачивании файла с сайта (file download), а о закачивании файла на сайт (file upload).


  • 0

#4 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 07 февраля 2018 - 05:32

Окно выбора файла - это окно ОС, а не браузера, поэтому Селениум с ним и не взаимодействует.

Сам функционал загрузки скорее всего у вас сделан как input с type="file".

В селениуме - просто находите этот инпут и через sendKeys передаёте в него абсолютный путь к файлу, который надо загрузить.

Файл будет загружен без высплывающих окон ОС.


  • 0

#5 evaiz

evaiz

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 07 февраля 2018 - 10:31

Спасибо. Этот инпут - с атрибутом readonly, и после того как я выполняю все действия "обычным" путем, в этот инпут попадает только имя файла, а не путь к нему. Видимо, путь где-то хранится, не отображается, но при этом используется при скачивании файла с диска. Попробую инъекцией избавиться от readonly и таки залить полный путь, чтобы посмотреть, что будет.


  • 0

#6 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 08 февраля 2018 - 06:03

Спасибо. Этот инпут - с атрибутом readonly, и после того как я выполняю все действия "обычным" путем, в этот инпут попадает только имя файла, а не путь к нему. Видимо, путь где-то хранится, не отображается, но при этом используется при скачивании файла с диска. Попробую инъекцией избавиться от readonly и таки залить полный путь, чтобы посмотреть, что будет.

Бывают такие реализации, где для загрузки файл есть JS обработчик. В этом случае инъекция может не помочь (будут пропущены каике-то шаги, которые выполняются при работе через JS). тогда сикули/робот  либо уточнять у разработчиков как и какой JS скрипт дернуть.


  • 0

#7 evaiz

evaiz

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 09 февраля 2018 - 11:54

Спасибо.


  • 0



Темы с аналогичным тегами uploadwebdriver, selenium, autoit, sikuli

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

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