【发布时间】:2013-09-23 10:07:15
【问题描述】:
我在 Firefox 24 上使用 Java 使用 WebDriver 上传文件时遇到问题。 而且我不能使用 AutoIT 或类似的一些外部程序。
我必须将文件上传到 HTML 代码为的部分:
<td>
<input type="file" name="file">
</td>
而我在 Eclipse 中使用的是
pageObject.getTypeFileLocation().sendKeys(textFile);
pageObject.getUploadButton.click();
这不起作用;还尝试了this问题的第一个答案,但都没有成功。
测试返回“OK”,但我怀疑没有执行任何操作,因此添加了一个检查以等待“上传完成”文本出现;但是文件没有上传,并且在20秒后超时,即使要上传的文件为5KB,手动上传时只需不到一秒。
input=file 部分包含一个按钮和一个“未选择文件”文本,当手动选择文件时,该文本会更改为文件路径;这就是我认为文件没有被上传的想法;因为“未选择文件”一直存在,直到测试失败。
我在 Chrome 上试过这个,似乎工作正常,而且我知道自 23 版以来在 FF 中有一些关于 input=file 的修改,但主要指向 CSS 样式,所以我认为它不相关。
另外,这个问题听起来可能有点愚蠢,但问题就是问题:sendKeys() 操作不需要一个字段来输入这些键吗?我觉得 WebDriver 正在尝试在按钮上写入路径,由于它只是一个按钮,因此无法执行该操作。
任何帮助将不胜感激,并提前致谢!
【问题讨论】:
-
没有。
sendKeys()不需要发送到字段,一个按钮就可以正常工作。但是,您对 FF 所说的可能是真的……我目前使用 FF19 进行自动化……我会测试一下降级是否可以使其工作。 -
也检查此链接 - code.google.com/p/selenium/wiki/…?
-
仍然无法解决任何问题...不过感谢您的链接!
-
嗨,马里亚诺。我遇到了同样的情况并设法解决它,正如我在stackoverflow.com/questions/9726005/… 所描述的那样,但是您需要再次编写 AutoIT 脚本。 AFAIK,没有办法只使用 WebDriver 来处理本机 Windows 弹出窗口。
标签: java firefox file-upload selenium webdriver