使用selenium将文件上载到弹出窗口

时间:2014-07-14 21:51:14

标签: python selenium xpath

我搜索了论坛,发现了一些有关此问题的信息,但不完全解决了我所面临的问题。我正在自动将文件上传到网站。不幸的是,该网站使用了一个计数器来识别"浏览"按钮。使用Selenium和Firebug,我能够找到另一种识别按钮的方法。我已将脚本导出到python中以添加变量,因此我可以自动执行。但是,浏览按钮会打开一个窗口弹出窗口以选择该文件。脚本就像这样开始......

driver.find_element_by_xpath("//*[@type=\"file\"]").click()
driver.find_element_by_id("upfile_1405369589849").clear()
driver.find_element_by_id("upfile_1405369589849").send_keys("path\\file")
driver.find_element_by_id("upload_button").click()

在此,单击上传按钮,弹出窗口,它就在那里嘲笑我。我尝试使用xpath代替id,但这并不起作用。我也试过以下......

driver.findElement(By.id()).send_keys("path\\file")

并尝试了这个......

driver.find_element_by_id("upfile_*").send_keys("path\\file")
除了它的嘲讽之外,我似乎无法让窗户作出回应。任何帮助压制这一点都将非常感激。

1 个答案:

答案 0 :(得分:1)

无法完成。一种解决方法是让开发团队为您修改AUT。在页面中添加一个javascipt函数,允许您将文件名传递给处理程序,而无需单击“浏览”按钮。

如果你不能这样做,我建议你调查Sikuli,这将允许你使用模式识别(截图)与你想要交互的内容进行交互。