Невозможно загрузить файл с помощью веб-драйвера python selenium на http://www.dropzonejs.com

Я пытаюсь загрузить файл, используя веб-драйвер селена. Я получаю диалоговое окно загрузки файла в MacOS и Windows, после чего ничего не происходит. Хотите знать, почему селен не открывает файл через диалог загрузки?

Команды веб-драйвера, которые я использую:

wd.get("http://www.dropzonejs.com/")
wd.find_element_by_css_selector("div.dz-message").click()
wd.find_element_by_css_selector("input.dz-hidden-input").click()
elm = wd.find_element_by_xpath("//input[@type='file']")
elm.send_keys("/Users/bg/Downloads/YOURFILE.PDF")
elm.submit()

2 ответа

Не нажимайте на файл input элемент - это вызовет диалог загрузки файла, который вы не можете контролировать с помощью selenium, Отправьте ключи input а также submit форма:

elm = wd.find_element_by_xpath("//input[@type='file']")
elm.send_keys("/Users/bg/Downloads/myfile.PDF")
elm.submit()

submit() в этом случае вызывается на элементе ввода - selenium нашел бы соответствующий input Элемент формы и отправить его.

Я наконец нашел код, который искал, чтобы решить мою проблему. Я собираюсь потратить 2 часа на поиски решения моей проблемы. В моем случае мне нужно было отправить изображение моего компьютера в программу через python. На странице есть только 1 кнопка для загрузки фотографии и одна для отправки. Большое спасибо за то, что сделали код доступным

Пример программного питона:

from selenium import webdriver
browser=webdriver.Chrome()
browser.maximize_window()
browser.get(('http://127.0.0.1/namepage.exp'))
elm = browser.find_element_by_xpath('//*[@id="exp_file"]') #
elm.send_keys("C:\PycharmProjects\\varios\image.png")
elm.submit()
Другие вопросы по тегам