如何使用机器人框架上传文件?

Posted

技术标签:

【中文标题】如何使用机器人框架上传文件?【英文标题】:How to upload a file Using Robot framework? 【发布时间】:2020-08-30 12:24:47 【问题描述】:

我想将使用机器人框架的图片上传到此:

我试过这个:

Add PJ
    Scroll Element Into View    xpath://div[@class='drop-zone text-center']
    Choose File     xpath://label[@class='label-dropZone']    ..\Resources/Robot-framework-logo.png

但我收到此错误:

ElementNotInteractableException: Message: element not interactable

【问题讨论】:

【参考方案1】:

Choose File 背后的底层 Selenium 函数所做的是在 <input> 元素中输入您提供给它的文本(即本地文件的路径)。这些元素是在上传文件的 html 标准中定义的元素。

在“更高级”的上传 UI 中,这些输入是隐藏的 - 用户看不到文件路径,但会看到说明性文本“在此处选择文件或拖放文件”,格式令人愉悦。您的示例就是这种情况-针对<label>,Selenium 说它不可交互而失败-无法在其上“键入”;它确实需要<input>

您可以/应该尝试在表单中找到<input>,尽管它是隐藏的,并将其作为目标。但有时这是不可能的——可能有 JS 代码阻止你改变它;所以成功率是不同的。

【讨论】:

以上是关于如何使用机器人框架上传文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 或其他 js 框架将字符串作为文件上传

如何使用 SQL 开发人员将任何文件从本地机器上传到数据库服务器文件系统

文件上传控件-如何上传文件-大文件下载

如何使用 <input type="file"/> 在本地机器上模拟真实的文件上传时间?

使用 Asp.NET Core 3.1 框架将文件上传到服务器时如何使用 IFormFile 作为属性?

如何使用 app.yaml 在 GAE(python) 中上传静态文件?