Не удается найти способ загрузить изображение (взаимодействовать с элементом)

#python #html #selenium

#python #HTML #selenium

Вопрос:

Итак, у меня есть код, который входит в Facebook и заполняет все необходимое для публикации элемента в marketplace, но я испытываю трудности с загрузкой изображений. Прежде всего, внутри «родительского тега» (div class =»aov4n071″) (первый div) нет входного тега:

введите описание изображения здесь

Однако, когда я пробую эту строку кода:

 ele = wait.until(EC.presence_of_element_located((By.XPATH,'//*[contains(text(), "Añadir fotos")]')))
ele.click()
  

Щелчок по элементу выполняется без каких-либо ошибок, и появляется диалоговое окно, в котором вам нужно вручную просмотреть вашу папку. КАК И ОЖИДАЛОСЬ. Однако, когда я отправляю_keys() в ele, он показывает:

  selenium.common.exceptions.ElementNotInteractableException: Message: Element <span class="a8c37x1j ni8dbmo4 stjgntxs l9j0dhe7 ltmttdrg g0qnabr5 oi732d6d ik7dh3pa d2edcug0 qv66sw1b c1et5uql muag1w35 ew0dbk1b jq4qci2q a3bd9o3v lrazzd5p oo9gr5id"> is not reachable by keyboard
  

Что понятно, потому что это не элемент ввода. Но где, черт возьми, входной тег??

Я обнаружил, что есть два входных класса, которые находятся прямо над «родительским» классом, о котором я говорил на первом рисунке. Но эти элементы не похожи на другие, когда я навожу на них курсор, они ведут себя не так, как другие элементы. Кажется, что они невидимы. (посмотрите, как они не окрашены, как другие)

введите описание изображения здесь

Я попробовал эту строку кода:

 ele = wait.until(EC.presence_of_element_located((By.CLASS_NAME,'mkhogb32')))
ele.send_keys(var)
  

Но это выдает мне эту ошибку:

 selenium.common.exceptions.ElementNotInteractableException: Message: Element <div class="eopy0mj9 ina5je9e kr520xx4 j9ispegn poy2od1o b5wmifdl mw227v9j n7fi1qx3 dya21fl7 a47luoao sbevj9st ev399l9o iwynql29 kuz35qqg mkhogb32"> is not reachable by keyboard
  

Но когда я пытаюсь это:

 ele.click()
  

Я получаю следующую ошибку:

 selenium.common.exceptions.ElementNotInteractableException: Message: Element <div class="eopy0mj9 ina5je9e kr520xx4 j9ispegn poy2od1o b5wmifdl mw227v9j n7fi1qx3 dya21fl7 a47luoao sbevj9st ev399l9o iwynql29 kuz35qqg mkhogb32"> could not be scrolled into view
  

Я не очень разбираюсь в HTML, но могу сказать, что это теги, которые позволят мне загружать изображения, но почему они ведут себя по-другому?

Что я могу сделать, чтобы наконец загрузить изображения?

Входные теги находятся в другом фрейме?

Ответ №1:

этот код работает хорошо

 POST="c:\maphoto.jpg"
l=navigateur.find_elements_by_tag_name('input') 
for g in l: 
    if g==navigateur.find_element_by_xpath("//input[@type='file'][@class='mkhogb32']"): 
        g.send_keys(POST) 


time.sleep(5)