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

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

Теги: #<Tag:0x00007f9af9bc9d50> #<Tag:0x00007f9af9bc9c38>

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

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

Вот кнопка

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

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

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

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

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

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

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

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

2 Симпатий