使用Selenium IDE(不是selenium WD / RC)上传文件

时间:2017-05-09 14:03:48

标签: file-upload automated-tests selenium-ide

我在堆栈上看到了一些与此主题相关的问题,而其他问题似乎总是包含RC / WD解决方案。这适用于SELENIUM IDE,而不是WD / RC实现。

我意识到我们只需要设置存储文件路径的元素的值,但我看到了相互冲突的方式。

我存储文件路径字符串的元素在检查器下如下所示:

输入类型="文件"命名=" StdConditionsFile" ID =" pdfApp"

如果我得到元素的Xpath,它看起来像这样:

// * [@ id中=" pdfApp"]

我使用以下代码分配file.path:

  • 命令:输入
  • 目标:id = idOfFileInput
  • 值:/ full / path / to / uploadfile

但我没有运气。我尝试使用元素的名称,xpath和id,但从未分配file.path。

更新: 我发现了一些进展,但如果我能真正做到这一点可能会产生误导。而不是使用'类型'作为命令,我寻找另一个替代品并找到' setElementAttribute'。如果我将该命令与upload.element的Id,name或XPath一起使用,我可以看到我实际上正在设置该值,但是有一个问题。

运行这3个命令后,我在检查器中看到了这个:

输入名称=" StdConditionsFile" ID =" pdfApp"值=" C:\ \文件\ filename.pdf&#34的完整\路径\;风格=""类型="文件"

在运行命令之前它是这样的

输入名称=" StdConditionsFile" ID =" pdfApp"风格=""类型="文件"

但是当您查看DOM属性时,名为' value'的属性是""或null。

任何人都有这方面的成功吗?

1 个答案:

答案 0 :(得分:0)

我可以使用AutoIt来做到这一点。我在AutoIt中创建了一个脚本,我必须在Selenium IDE中启动tests / testsuite之前启动它。在查找“文件上载”窗口时,AutoIt脚本将循环。确切的步骤是:

  1. 创建循环的AutoIt脚本并查找名为“文件上载”的窗口
  2. 启动了AutoIt脚本
  3. 启动了Selenium IDE测试脚本
  4. Selenium IDE脚本会执行此操作,单击网站页面上的“浏览”按钮并暂停。
  5. 循环AutoIt脚本将看到上一步从Selenium IDE生成的“文件上载”窗口,并在对话框窗口中输入上传文件的路径(浏览 - >文件上传)
  6. AutoIt然后点击“确定”并关闭上传窗口
  7. Selenium IDE脚本会暂停,点击网站上的“上传”按钮。
  8. 文件已上传! - 检查!
  9. 测试/故障排除: 我在Selenium WD和Selenium IDE中使用了完全相同的命令,我使用“Sendkeys”在文件路径中输入到站点上传控件中。 Selenium IDE会说该命令是成功的,但你从未看过网站更新并显示像WD一样的路径。因此,当您单击上载按钮时,不会上载任何文件。我在多机器上尝试了这个并使用“Type”。这也没有用,Selenium IDE中的命令显示为通过。我也使用在IDE中传递但不起作用的setElementAttribute。其他用户说这项工作,但我还没有看到它和AutoIt肯定有效。