selenium - 机器人框架 - 使用接受属性定位输入元素失败
问题描述
我正在使用以下 CSS 定位器为头像上传模块编写自动化脚本:
input[accept="image/png,image/jpeg,image/gif,image/bmp"]
我正在使用 Robot Framework 的Wait Until Element Is Visible关键字来查找上面的定位器,但由于错误而失败:
Element 'css=input[accept="image/png,image/jpeg,image/gif,image/bmp"]' not visible after 30 seconds.
增加超时也不起作用。在 Chrome 开发工具中使用相同的内容将成功找到该元素。我的猜测是逗号/斜杠弄乱了机器人的定位器解析。我的问题是:编写定位器的正确方法是什么?
解决方案
虽然存在于 DOM 中,但元素可能不可见/不呈现。文件上传元素经常出现这种情况input
- UI 呈现不同的东西,a button
,div
它应用了样式并且更适合整体设计。
因此,检查是否可见将理所当然地失败。更改您的使用前方法以验证input
HTML 中的内容 - 这实际上与您在浏览器的开发工具中所做的相同 - 使用Page Should Contain Element
关键字,并继续成功。
推荐阅读
- sorting - 使用指针对二维数组进行排序
- android - 程序类型已经存在:com.squareup.picasso.Action$RequestWeakReference
- angular - 如果在 package.json 中添加了新的依赖项并在组件文件中使用它,如何更新 Angular 应用程序?
- sql - (Microsoft SQL Server Management Studio 17) AND / LIKE 运算符灰显
- python - 使用 NLTK 删除停用词时,对象没有属性
- ms-access - Access a function in excel TEXT(,) 类似
- javascript - 如何在没有 Express 的情况下增加 Node.js 查询字符串发布请求的限制?
- docker - 在卷中制作 docker-compose 忽略文件夹
- dicom - 如何使用 HL7 消息在 DCM4CHE 中为患者创建模态工作列表?
- rest - 使用 vcsim 模拟器调用 vCenter 6.5 REST API