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

Загрузка изображения на сайт с помощью Selenium

upload
sikuli
image
java
webdriver
selenium
Теги: #<Tag:0x00007f21d62bd1b8> #<Tag:0x00007f21d62bd078> #<Tag:0x00007f21d62bcf38> #<Tag:0x00007f21d62bcdf8> #<Tag:0x00007f21d62bcc68> #<Tag:0x00007f21d62bcb28>

(Кирилл Трифонов) #1

Здравствуйте.
Необходимо вставить картинку на сайт, но открывается окно менеджера файлов, с которым Селен работать не может. Сторонние инструменты такие как Sikuli использовать нельзя.
Каким образом можно решить эту задачу? В голове есть вариант: сделать тот же вызов, который делает фронтенд при загрузке файла, но как это сделать не могу понять.
Буду благодарен за помощь.


(Viktor) #2

в input, где находится загрузка файла, нужно ввести путь к файлу при помощи команды селениума Sendkeys, и файл загрузится


(Кирилл Трифонов) #3

Спасибо за ответ. Но я забыл указать, что нет input


(Viktor) #4

в смысле не обычный input в виде поля, а input тег в html
например так выглядит кнопка загрузки файла у фейсбука
image


(Кирилл Трифонов) #5

Я понимаю о чем вы. В моем случае это вот так


(Viktor) #6

Прям сюда или где то рядом пробовали ввести?


(Vatslau) #7

раньше делал такую лабуду
а сейчас вот думаю а зачем это автоматизаровать selenium?
тут скорее сервис откажет чем UI


(Кирилл Трифонов) #8

Извините за ожидание. Да прямо сюда. Выдает:


(Viktor) #9

C button тоже самое? Через апи можно попробывать если не принципиально загружать через UI. Или на краний случай использовать либу, которая выполняет действия клавиатуры комьютера, но это плохой вариант как по мне.


(Михаил Братухин) #10

Вот не сказал бы… UI на JS написан и может неожиданно отвалиться то, что ты и не трогал даже. Буквально вчера был такой случай. К счастью регрессионные тесты поймали, а так бы легко могло улететь и на прод…


(Михаил Братухин) #11

Почему плохой? Разные тесты - разные технологии. По факту нужно комплексное рабочее решение. И только end-2-end может сказать наверняка, что все работает. Unit / Integration / API - хорошо, но без фулл E2E нет полной страховки. Для некоторых отраслей это очень критично.


(Viktor) #12

В несколько потоков лучше не запускать), а так решение рабочее


#13

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


(Кирилл Трифонов) #14

В button никаких ошибок не происходит, но картинка не появляется.


(Кирилл Трифонов) #15

Попробую сейчас нажать на “ЗАгрузить”, а потом вставить в input.


Все равно не работает. Он открывает окно после нажатия на кнопку, а когда вставляешь в input, выдает эксепшн.


#16

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


(Кирилл Трифонов) #17

Решил попробовать свой метод: отправкой такого же http-запроса, как и тот, который отправляет фронт во время нажатия на загрузить. Но столкнулся с проблемой, что не не нашел как же все таки отправлять запросы. Их можно вообще из селена отправлять или надо сторонние библиотеки?