【问题标题】:File upload with Selenium WebDriver and FF24使用 Selenium WebDriver 和 FF24 上传文件
【发布时间】: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


【解决方案1】:

解决了!

不知道它是否适用于所有浏览器,但至少它适用于 FF 和 Chrome:

发现有人使用了 FILE 类型,所以重用它并得到它的绝对路径:

protected File *fileName* = new File("*path to file*");
private String textFile = *fileName*.getAbsolutePath(); 
pageObject.getInput().sendKeys(textFile);

希望别人觉得它有用;因为回答我自己的问题很奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2013-11-08
    • 1970-01-01
    • 2013-09-20
    • 2015-03-22
    • 2015-12-23
    相关资源
    最近更新 更多