File upload 使用Selenium IDE上传文件(非Selenium WD/RC)

File upload 使用Selenium IDE上传文件(非Selenium WD/RC),file-upload,automated-tests,selenium-ide,File Upload,Automated Tests,Selenium Ide,我在stack上看到了一些与本主题相关的问题,与其他问题一样,回答似乎总是包括RC/WD解决方案。这是针对SELENIUM IDE的,而不是WD/RC实现 我意识到我们只需要设置存储文件路径的元素的值,但我发现这样做的方式相互冲突 存储文件路径字符串的My元素在inspector下如下所示: input type=“file”name=“StdConditionsFile”id=“pdfApp” 如果我得到元素的Xpath,它如下所示: /*[@id=“pdfApp”] 我正在使用以下代码分配f

我在stack上看到了一些与本主题相关的问题,与其他问题一样,回答似乎总是包括RC/WD解决方案。这是针对SELENIUM IDE的,而不是WD/RC实现

我意识到我们只需要设置存储文件路径的元素的值,但我发现这样做的方式相互冲突

存储文件路径字符串的My元素在inspector下如下所示:

input type=“file”name=“StdConditionsFile”id=“pdfApp”

如果我得到元素的Xpath,它如下所示:

/*[@id=“pdfApp”]

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

  • 命令:类型
  • 目标:id=idOfFileInput
  • 值:/full/path/to/uploadfile
但是我没有运气。我尝试使用元素的名称、xpath和id,但从未分配file.path

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

在运行这3个命令中的任何一个之后,我在inspector中看到:

input name=“StdConditionsFile”id=“pdfApp”value=“C:\full\path\of\file\filename.pdf”style=”“type=“file”

在运行命令之前是这样的

input name=“StdConditionsFile”id=“pdfApp”style=”“type=“file”

但是当您查看DOM属性时,名为“value”的属性是“”或null


有人真的在这方面取得了成功吗?

我使用AutoIt就可以做到这一点。我在AutoIt中创建了一个脚本,在SeleniumIDE中启动测试/测试套件之前必须先启动该脚本。AutoIt脚本将在查找“文件上载”窗口时循环。具体步骤如下:

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

    我可以使用AutoIt来实现这一点。我在AutoIt中创建了一个脚本,在SeleniumIDE中启动测试/测试套件之前必须先启动该脚本。AutoIt脚本将在查找“文件上载”窗口时循环。具体步骤如下:

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