使用Robot Framework Test在浏览器中上传文件

问题描述 投票:2回答:4

我正在使用Robot Framework和Selenium为我的Web应用程序编写测试用例。我试图上传文件,但我不能失败。

我的代码是

*** Variables ***
${TVAURL}     http://localhost:1500/
${Browser}    Firefox

TC_01: Enter into the application
    [Documentation]   Enter into the application to upload a file
    Open Browser   ${TVAURL}     ${Browser}
    maximize browser window
    Choose File ........

HTML文件:

<!DOCTYPE html>
<html>
<head>
<title>Upload File</title>
</head>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

我需要知道如何使用这个Choose File进行此文件上传测试。我不知道该怎么做。我需要自动上传文件而不需要任何第三方工具,如Autoit等,

我提到了以下http://robotframework.org/Selenium2Library/Selenium2Library.html#Choose%20File

此外,我也提到了以下问题

但我无法得到任何解决方案。请使用Pycharm Studio中的Selenium Robot Framework帮助我如何做到这一点。

回答#1答案:@ demouser123

我仍然有问题,在这里我附加了屏幕截图

enter image description here

它总是打开桌面,但失败了。请帮助我。

我踩了下面的代码

*** Variables ***
${PO_AddShell}     //*[@id="fileToUpload"]

click button  ${PO_AddShell}
Choose File   ${PO_AddShell}    E://Project/Publish/SampleTest.1500/rose.jpg
selenium pycharm robotframework filechooser selenium2library
4个回答
3
投票

根据Selenium2library中提供的文档,使用Choose File关键字的语法是

Choose File  Locator  File_name

对于WebDriver可以与示例进行交互的对话框或输入,可以执行类似的操作

Choose File id=fileToUpload  C://Downloads/Demo/Abc.txt

这里C://Downloads/Demo/Abc.txt是系统中保存文件的位置。将其更改为您自己的文件位置。

此外,我还记得这个解决方案,最终也适用于我 - SO Post about uploading from a Windows directory。你也可以试试这个。


0
投票

I am providing alternate solution for the question. Please try this if you didnt get.

在脚本下运行的先决条件:

从这个SikuliX在您的机器上安装Sikulix,这很容易安装和安装robotframework-SikuliLibrary。如果您想要更多选项SikuliX documentation,可以浏览文档。使用某些剪切工具捕获下载路径/文件名等图像,并在以下脚本中更新名称。

*** Settings ***
Library          Selenium2Library
Library           SikuliLibrary

*** Test cases  ***
Login to Browser with download preferences
 [Documentation]   This one is without specifying download location
    Open Browser  https://www.docdroid.net/   Chrome
    Click Element   id=selectFiles
    Sleep   5
    SikuliLibrary.Click      /images/download.PNG
    SikuliLibrary.Click      /images/file.PNG
    SikuliLibrary.Click      /images/open.PNG

如果要指定下载位置,请使用以下脚本

*** Settings ***

    Library          Selenium2Library
    Library           SikuliLibrary

    *** Test cases  ***
    Login to Browser with download preferences
     [Documentation]   You can specify your download location
        Open Browser  https://www.docdroid.net/   Chrome
        Click Element   id=selectFiles
        Sleep   5
        SikuliLibrary.Input Text           /images/file_path.PNG     C:\\Users\\Madhu\\Downloads
        Press Special Key        ENTER
        #SikuliLibrary.Click      /images/download.PNG
        SikuliLibrary.Click      /images/file.PNG
        SikuliLibrary.Click      /images/open.PNG

0
投票

在机器人框架中使用自动库,您可以将文件上传到应用程序中。即使系统被锁定,此解决方案仍然有效。

输入文件名,然后单击窗口对话框中的发送

run keyword if  '${Browser}' == 'Chrome'  File upload in Chrome browser
...   ELSE IF  '${Browser}' == 'Firefox'  File upload in Firefox browser

在Chrome浏览器中上传文件

control focus  [CLASS:#32770; TITLE:Open]  ${EMPTY}  [CLASSNN:Edit1]
control send  [CLASS:#32770; TITLE:Open]  ${EMPTY}  [CLASSNN:Edit1]  C:\\File_Upload\\Test_Upload
control click  [CLASS:#32770; TITLE:Open]  ${EMPTY}  &Open

在Firefox浏览器中上传文件

control focus  File Upload  ${EMPTY}  [CLASSNN:Edit1]
control send  File Upload  ${EMPTY}  [CLASSNN:Edit1]  C:\\File_Upload\\Test_Upload
control click  File Upload  ${EMPTY}  &Open

0
投票

你不应该使用

click button  ${PO_AddShell}

只需使用选择文件而不点击

© www.soinside.com 2019 - 2024. All rights reserved.