机器人框架中的文件上传f

时间:2017-05-21 20:34:40

标签: python robotframework selenium2library

我正在尝试使用robotframework对网络的上传文件按钮进行测试,但我无法找到方法。

具体来说,我使用这个网站作为例子:

http://www.zamzar.com/

这是上传按钮的属性:

<input id="inputFile" class="bodyBig" type="file" name="file_1" size="12" 
style="position: absolute; display: block; opacity: 0; z-index: 0;">

正如我在文档中看到的那样,我正在使用Choose File但是我被卡在Windows弹出窗口中,它会打开,但文件未被选中:

Windows pop-up

我的测试用例看起来像这样:

*** Settings ***
Suite Setup       Test Setup Open Browser
Suite Teardown    Test Teardown Close Browser
Resource          SeleniumKeywords.tsv

*** Test Cases ***
Select file typing path
File Should Exist    C:${/}Users${/}MADI${/}Desktop${/}image.bmp
Wait Until Page Contains Element    id=inputFile
Choose File    id=inputFile    C:${/}Users${/}MADI${/}Desktop${/}image.bmp
Select From List    toExtensionSel    jpg
Input Text    toEmail    diego.mg.umh@gmail.com
Click Button    uploadButton
Sleep    10

文件存在并且位于正确的位置,您知道我需要更改什么才能上传文件吗?

提前感谢您,最好的问候.-

2 个答案:

答案 0 :(得分:2)

要上传文件,您无需担心Windows弹出窗口。只有在手动上传文件时才会显示Windows弹出窗口。

因此,当您通过自动化代码模拟相同时,请使用以下代码格式

choose file  ${xpath}  ${absolute_file_path}

其中,选择文件是您从selenium2libary导入的关键字,$ {xpath}是您的情况下上传文件元素的xpath

xpath=//input[@id='inputFile'] 

$ {absolute_file_path}是文件路径,其中包含您要上传文件的文件名。

${absolute_file_path}  C:\Users\MADI\Desktop\image.bmp 

如果您使用单独的资源文件来定义代码中使用的变量。

答案 1 :(得分:1)

当您点击“选择文件”按钮时,会显示一个我们可以自动执行的窗口。所以我们有几种方法可以解决这个问题。

  1. 使用可以自动化Windows应用程序的AutoIt工具。了解并将其应用于那里。
  2. 使用javascript执行器。如您所见,我们可以拖放选择文件正下方的任何文件。检查DOM将文件拖放到那里时发生了什么。在项目级别放置一个文件,并检查我们如何在那里申请。
  3. 如果有任何问题,请告诉我。