Не получается загрузить картинку ни в firefox ни в chrome

Пробовала загружать картинку как в chrome так и в firefox. В chrome выдает ошибку: WebDriverException: Message: unknown error: cannot focus element. А в firefox тест проходит успешно, но картинку не загружает.

Пытаюсь так:

    image = driver.find_element_by_id('dropzone-images')
    action = webdriver.ActionChains(self.driver)
    action.move_to_element(image)
    action.perform()
    image.send_keys(os.getcwd() + "/home/natali/small.png")

В firefox вписует адрес сюда:

попробуй найти где то рядом //input елемент и туда загрузить файл

input type = ‘hidden’
не могу разобраться как это изменить. Может подскажите?

А это не имеет значение, туда нужно кейсендить файл…

А когда идет загрузка файла обязательно должен быть инпут? Тот который я нашла просто к текстовому полю, а не к загрузке файла(

Должно быть input поле с атрибутом type=“file”…

Скиньте весь код страницы или дайте сайт

1 лайк

У меня вот такой ипут появляется, но только после загрузки картинки.
input value=“images/category-images/small_vmjqJFo.png” name=“category_icon” type=“hidden”>

до загрузки :

после:

У form не все внутренние теги открыты, переделайте первый скриншот с развернутыми ВСЕМИ внутренними тегами формы…

до:

после:

на первом скрине есть input type=‘file’

это не тот(
по крайней мере с ним не работает у меня

Попробуй так, или сделай метод котрый будет работать (проверь его на другом сайте), затем когда уверенна что есть хорошая ф-ция уже ищи где по коду она залезет

Imagepath=os.path.abspath('.\\folder1\\subfolder2\file1.jpg')
driver.find_element_by_id("Id of the element").clear()            
driver.find_element_by_id("Id of the element").send_keys(Imagepath)

не помогло((

тогда ищи через что правильно залить файл

Вот бы ссылочку на это “чудо”…

1 лайк

В народе ходят слухи о существовании кастомных аплоадеров, у которых нет input'ов с типом file. :wink: Также существует поверье, что в таком случае нужно использовать OCR tools, или грузить файлы напрямую через сервисы.

А еще можно отправить волшебного пинка UI-щикам, попросив паблик линк на используемый для аплоада компонент, что сразу же снимет все вопросы и догадки.

2 лайка

В общем решение нашлось.

driver.execute_script("var form = document.getElementById(‘add_category_form’); var div = document.createElement(‘div’); " +
"div.innerHTML = "<input value=‘images/category-images/small_vmjqJFo.png’ " +
“name=‘category_icon’ type=‘hidden’>”; " +
"form.appendChild(div); ")

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

1 лайк