Robot Framework下拉选图片上传失败,视频上传正常求助
Robot Framework中图片上传失败但视频上传正常的问题排查
我在Robot Framework中遇到一个异常问题:从下拉菜单选择「Image」选项后尝试上传图片文件失败,但选择「Video」选项上传视频文件却能成功。以下是图片和视频对应的定位器及操作代码:
图片(上传失败)
# 选择图片 click element css:body > app-root > div > app-master > div > div.full-height > div > div > div > app-campaign-builder > div > div > div > app-setup-media > div > div > app-modal-popup > div > app-base-modal > div > div > div.flowbuilder-overlay-content > app-setup-node-properties > app-richcard-carousel > form > div > div.block-level-left > section > app-tabs > div.tab-body > app-richcard-carousel-tab-selection > form > div > div > div > div.flex-row.image-containter > ng-conatiner > div.form-fields.align-center > div > div > app-dropdown > div > div > select > option:nth-child(1) # 上传图片文件 Choose File /html/body/app-root/div/app-master/div/div[3]/div/div/div/app-campaign-builder/div/div/div/app-setup-media/div/div/app-modal-popup/div/app-base-modal/div/div/div[2]/app-setup-node-properties/app-richcard-carousel/form/div/div[1]/section/app-tabs/div[1]/app-richcard-carousel-tab-selection/form/div/div/div/div[1]/ng-conatiner/div[2]/section/app-file-uploader-crop-image/div/div/div/input ${TestDataDir}/FileUpload.jpeg
视频(上传正常)
# 选择视频 click element css:body > app-root > div > app-master > div > div.full-height > div > div > div > app-campaign-builder > div > div > div > app-setup-media > div > div > app-modal-popup > div > app-base-modal > div > div > div.flowbuilder-overlay-content > app-setup-node-properties > app-richcard-carousel > form > div > div.block-level-left > section > app-tabs > div.tab-body > app-richcard-carousel-tab-selection > form > div > div > div > div.flex-row.image-containter > ng-conatiner > div.form-fields.align-center > div > div > app-dropdown > div > div > select > option:nth-child(2) # 上传视频文件 Choose File /html/body/app-root/div/app-master/div/div[3]/div/div/div/app-campaign-builder/div/div/div/app-setup-media/div/div/app-modal-popup/div/app-base-modal/div/div/div[2]/app-setup-node-properties/app-richcard-carousel/form/div/div[1]/section/app-tabs/div[1]/app-richcard-carousel-tab-selection/form/div/div/div/div[1]/ng-conatiner/div[2]/section/app-file-uploader-video/div/div/input ${TestDataDir}/Video Upload.mp4
排查方向及解决建议
修正定位器拼写错误
所有定位器中的ng-conatiner都是拼写错误,正确应为ng-container。这个错误会直接导致元素定位失败,是图片上传失败的核心原因之一,先修正所有出现该拼写的定位器。优化定位器,避免绝对路径
当前使用的绝对CSS/XPath路径极易受页面结构变化影响,建议改用更稳定的相对定位:- 选择图片选项可改为:
click element xpath://app-dropdown//select/option[text()="Image"] - 图片上传input可改为:
Choose File css:app-file-uploader-crop-image input[type="file"] ${TestDataDir}/FileUpload.jpeg
- 选择图片选项可改为:
添加元素等待逻辑
选择Image选项后,页面可能动态渲染上传组件,需等待元素可见后再执行上传:Wait Until Element Is Visible css:app-file-uploader-crop-image input[type="file"] 10s Choose File css:app-file-uploader-crop-image input[type="file"] ${TestDataDir}/FileUpload.jpeg验证文件路径与合法性
确认${TestDataDir}/FileUpload.jpeg路径正确,文件存在且未损坏,可通过日志打印路径验证:Log ${TestDataDir}/FileUpload.jpeg INFO检查上传组件的属性限制
手动查看页面中图片上传input的accept属性,确认是否允许.jpeg格式;同时对比视频上传组件的差异,排查是否存在特殊的JS逻辑需要触发。
内容的提问来源于stack exchange,提问作者user2609370
相关产品推荐
相关产品推荐

