Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenium Webdriver Java Не получается загрузить файл

webdriver
java
Теги: #<Tag:0x00007f7b627f9920> #<Tag:0x00007f7b627f97e0>

(Sergeyredko) #1

Добрый день. На сайте есть функциональность добавления картинки. Есть проблема с автоматизацией. Покопался на форуме, предлагают следующее решение, которое не сработало:

element = driver.findElement(By.xpath(xpath));
element.sendKeys(pathToFile);

Вот кнопка


Если просто выполнить

element = driver.findElement(By.xpath(xpath)).click();

Диалоговое окна выбора файла не открывается. Складывается впечатление что драйвер эту кнопку просто не видит


(Sergey Korol) #2

Не сработало, потому что искомый элемент должен быть input’ом с типом file. Вы же указываете button.

К тому же, ваш вариант технически ничего не даст чистыми средствами webdriver’а. Открой вы диалог uplaod’а, все равно как-то нужно будет еще ввести текст в поле пути, прибегая к каким-нибудь доп. тулам / либам по типу SikuliX / AutoIT, либо в лоб - Robot’ом.

Клик может не срабатывать по разным причинам. Нужно смотреть тело exception’а. Могу предположить, что те div’ы над кнопкой перекрывают ее (element is not clickable at point).

Советую все же найти <input type=file> и попробовать отправить ему путь via sendKeys. Если же он скрыт, то средствами JS можно сделать его видимым перед непосредственным взаимодействием.

Либо же ищите элемент, который принимает click (если конечно нет бага с overlapping), и используйте один из выше перечисленных тулов.