【问题标题】:Unable to upload file using python selenium webdriver on http://www.dropzonejs.com无法在 http://www.dropzonejs.com 上使用 python selenium webdriver 上传文件
【发布时间】:2015-05-12 21:29:25
【问题描述】:

我正在尝试使用 selenium 网络驱动程序上传文件。我在 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()

【问题讨论】:

标签: python selenium file-upload selenium-webdriver


【解决方案1】:

不要点击文件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 元素的表单并提交它。

【讨论】:

  • 我已经完全按照您指定的方式进行了尝试,但是文件上传对话框一直保持打开状态,没有上传任何文件。
  • @BarryG 我在这里看不到任何通常会触发文件上传对话框的内容。这是一个公共网站,我也可以尝试重现该问题吗?谢谢。
  • @ alecxe try dropzonejs.com 这是该站点上的命令: def test_testdropzone(self): success = True wd = self.wd wd.get("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() self.assertTrue(success)
  • @BarryG 这就是我要说的。在您的代码中,wd.find_element_by_css_selector("div.dz-message").click() 触发文件上传对话框 - 您必须避免它。
  • 我删除了该行,但是现在文件上传不会触发,对话框也不会打开。为了在 www.dropzonejs.com 上上传文件,selenium 命令会是什么样子?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 2020-11-26
    • 2023-03-06
    • 2016-10-19
    • 1970-01-01
    相关资源
    最近更新 更多