以无头模式为机器人框架上传文件

Posted

技术标签:

【中文标题】以无头模式为机器人框架上传文件【英文标题】:upload a file in headless mode for robot framework 【发布时间】:2021-07-03 03:25:21 【问题描述】:

我正在机器人框架中编写一个自动化测试,我需要帮助来使用机器人框架库或 python、javascript 或 ajax 中的一些代码以无头模式为以下 html 代码上传文件。

<div class="mx-name-fileManager1 mx-fileinput mx-filemanager form-group no-columns" style="width: 95%; padding-left: 40px;">
    <label class="control-label" for="110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133" id="110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133-label">Upload Document
    </label>
    <div class="mx-compound-control" data-focusindex="0">
        <form class="sr-only" enctype="multipart/form-data" method="POST">
            <input type="file" tabindex="-1" accept=".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.odt">
        </form>
        <input type="text" class="form-control" readonly="" aria-labelledby="110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133-label" value="...">
        <button type="button" class="btn mx-button mx-fileinput-upload-button" id="110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133-upload" aria-labelledby="110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133-label 110.ServiceAsset.UploadDocument_SparePart.fileManager1.11_bch_133-upload">Browse...
        </button>
    </div>
</div>

【问题讨论】:

【参考方案1】:

您必须使用Robot Framework Selenium library,打开浏览器并导航到您需要上传的页面。然后你可以用这个代码sn-p上传

Choose File    xpath://input[@type="file"]    $CURDIR/somefile.doc

【讨论】:

谢谢。我之前使用的是表单标签之外的输入标签,而不是内部标签。所以我认为“选择文件”关键字在这里不起作用。再次感谢 @T-2021 要识别文件上传输入标签,您应该检查类型属性。输入标签的内部有type=file,外部的类型为文本

以上是关于以无头模式为机器人框架上传文件的主要内容,如果未能解决你的问题,请参考以下文章

如何通过ftp在windows系统上传文件到linux

无法使用 GraphQL 和 Apollo 将文件上传到 Strapi

java 实现文件夹上传(springBoot 框架)

从引导模式以 PHP 和 Ajax 上传文件

vue框架实现文件上传功能

使用FTP登陆上传ASP文件怎么大小变为0了?