【发布时间】:2014-07-14 21:51:14
【问题描述】:
我搜索了论坛并找到了一些有关此的信息,但与我面临的问题并不完全一致。我正在自动将文件上传到网站。不幸的是,该网站使用计数器作为“浏览”按钮的 id。使用 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")
除了嘲弄的眩光外,我似乎无法让窗口做出响应。非常感谢任何有助于消除这种情况的帮助。
【问题讨论】:
-
当您发送密钥时,文件元素会填充路径?
-
弹出窗口是标准浏览器文件上传弹出窗口还是由 HTML/JavaScript 创建的?有时甚至还有基于 Flash 的上传对话。您只能通过 Selenium 访问 HTML/JavaScript 元素。
-
@Sebastian 弹出窗口是从操作系统(windows)生成的。刚刚有人发帖说我需要一个辅助应用来完成这项工作,所以我将开始调查。
-
@Amey 这就是它应该做的。有人告诉我,这对于操作系统生成的窗口来说是不可能的,所以我将采取不同的方向。