是否可以使用Robot Framework中的“选择文件”来选择文件夹?

时间:2019-10-02 13:04:24

标签: robotframework

我想知道是否可以通过某些参数使用“选择文件”关键字来选择文件夹而不是单个文件?

文件上传输入的HTML类似于我们应用程序中的文件夹上传输入。

文件

<input data-automation-id="upload-multiple-files" id="upload-multiple-files" multiple="multiple" name="uploadFiles" type="file" accept="*" title="Select files to upload">

文件夹

<input data-automation-id="uploadFolder" directory="" id="uploadFolder" multiple="multiple" name="uploadFiles" type="file" webkitdirectory="" accept="*" title="Select folders to upload">

对于文件上传,Choose File xpath=//input[@type="file"] C:\\Users\\username\\Desktop\\robottestfile.txt有效。但是对于文件夹上载Choose File xpath=//input[@type="file"] C:\\Users\\username\\Desktop\\来说不是。

很抱歉,如果有一个简单的解决方案,我还找不到。

尝试了Helios的回答,这使我进入了一个新的地方。

现在我有

Send folder
    @{my_file_list}=    OperatingSystem.List Files In Directory    ${path_to_directory}
    FOR    ${file}    IN    @{my_file_list}
    \    ${result}=    Choose File    ${my_locator}    ${file}
# Finish this test
#     Close Browser  
*** Keywords ***

*** Variables ***
${my_locator}  xpath=//input[@title="Select files to upload"]
${path_to_directory}  C:\\Users\\username\\Desktop\\alfrescotestfolder

但是我得到这个错误:

ValueError:文件'alfresctotestexcel.xlsx'在本地文件系统上不存在。

alfrescotestexcel.xlsx在该目标文件夹中...

2 个答案:

答案 0 :(得分:2)

否,Choose File没有现成的解决方案。您必须先在文件夹中获取文件名,然后再为每个文件名Choose File

@{my_file_list}=    OperatingSystem.List Files In Directory    ${path_to_directory}
: FOR    ${file}    IN    @{my_file_list}
\    ${result}=    Choose File    ${my_locator}    ${path_to_directory}${/}${file}

答案 1 :(得分:0)

cd /path/to/app/folder
phonegap plugin add whatever-plugin-name-is

我在文件选择中添加了完整路径。请尝试这些,这将为您工作。

注意: 如果您具有“浏览文件”或“选择文件”按钮,请使用此行等待关键字成功显示120 2s元素$ {xpath_for_BrowseFiles_button}。