无法使用http://www.dropzonejs.com上的python selenium webdriver上传文件

时间:2015-05-12 21:29:26

标签: python selenium file-upload selenium-webdriver

我正在尝试使用selenium web驱动程序上传文件。我在MacOS和Windows上都打开了文件上传对话框,之后没有任何反应。想知道为什么selenium不会通过上传对话框打开文件?

我正在使用的Webdriver命令:

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 个答案:

答案 0 :(得分:6)

请勿点击文件input元素 - 它会触发您无法通过selenium控制的文件上传对话框。将密钥发送到inputsubmit表单:

elm = wd.find_element_by_xpath("//input[@type='file']")
elm.send_keys("/Users/bg/Downloads/myfile.PDF")
elm.submit()
在这种情况下,

submit()会在输入元素上调用 - selenium会找到与input元素对应的表单并提交它。

答案 1 :(得分:0)

我终于找到了我想要的代码来解决我的问题。我将进行2个小时的研究,以找到解决问题的方法。在我的情况下,我需要通过python将我的电脑的图像发送到程序。该页面只有1个按钮用于上传照片,1个用于发送。 非常感谢您提供了代码

程序python的例子:

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()