我正在尝试使用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()
答案 0 :(得分:6)
请勿点击文件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
元素对应的表单并提交它。
答案 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()