Selenium IDE - 将文件上传到字段中

时间:2018-05-14 17:07:35

标签: selenium selenium-ide

我正在创建一个测试套件,以自动化我的Web应用程序中的某些数据输入部分。我有一个页面,我可以单击按钮将文档上传到应用程序。它看起来像这样:

screenshot 1

单击“添加新附件”按钮后,将打开浏览器的文件资源管理器以选择要上载的文档。我试图在Selenium IDE中复制它。

以下是截至目前的情况:

screenshot 2

然而,这部分似乎失败了。有谁知道如何使用Selenium IDE实现类似的过程?我在Chrome和Firefox上。

3 个答案:

答案 0 :(得分:1)

  

我在使用Chrome和Firefox。

Automating file uploads Chrome 扩展程序api,非Firefox 支持。因此它不适用于IDE版本的Firefox。他们在这里说:https://github.com/SeleniumHQ/selenium-ide/issues/120

看起来你做的一切都很正确,但如果没有要测试的网页网址,很难说更多。

它适用于Kantu Selenium IDE吗?因为Kantu和原始selenium使用相同的扩展API,所以它们在两者中应该以相同的方式工作。如果没有,那就是一个bug。

要记录文件上传,请像往常一样使用文件选择对话框选择文件。 Kantu记录了它。请注意,出于安全原因,Chrome仅返回文件名,而不返回扩展名的文件路径。因此,文件路径始终记录为“c:\ fakepath”。所以在录制之后,你需要编辑宏并用实际路径替换c:\ fakepath。

答案 1 :(得分:1)

可能使用Selenium IDE上传文件。可以按照以下说明进行操作。

|Command|Target|Value|

|type|target_location_path|location_of_the_file_in_your_system|

示例:

|type|id=ConsignmentCustomerInvoiceFilename|C:\Users\abc\Desktop\img1.jpg|

您可以通过手动上传文件,然后在网络应用中找到上传文件的xpath来标识“ target_location_path”。

请参考下面的屏幕截图以获得更好的理解。

SeleniumIDE_uploadfile

您可以使用以下代码将系统路径添加到IDE测试中。

<tr>
    <td>storeEval</td>
    <td>Preferences.getString(TestSuite.TEST_SUITE_DIRECTORY_PREF);</td>
    <td>testSuiteFolder</td>
</tr>
<tr>
    <td>type</td>
    <td>id=QuestionUpload_file</td>
    <td>${testSuiteFolder}/resources/question_upload.csv</td>
</tr>

答案 2 :(得分:1)

如果得到

  

{“代码”:-32000,“消息”:“不允许”}

在Chrome上,请按照以下步骤操作:

窗口>更多工具>扩展> Selenium IDE>详细信息

然后打开“允许访问文件URL”选项。

我遇到了同样的问题,这对我有用。