我正在开发一个使用choose file
机器人框架关键字升级文件的场景。测试运行,当选择文件执行时,它会点击<input type="file">
元素的定位器,UI会在页面底部显示一个红色框(参见附件),但文件不会上传。
我不确定用户界面是否不知道如何处理上传,或者我的代码是否有错误:
choose file xpath=/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div/div[1]/div[1]/div[2]/div/span ${dataDir}studentSAT.csv
${dataDir}
变量包含文件的操作系统完整路径,文件位于该位置。作为验证点,我尝试将文件名更改为不存在的文件名,机器人抛出错误,指出数据不可用。
有没有人遇到过这个?
答案 0 :(得分:0)
之前我遇到过同样的问题,我尝试过多种方法,比如模拟关键字操作和在文件上传对话框中输入文件路径,使用选择文件关键字,AutoIT Library for Robot Framework。
1)如果您打算在本地计算机上运行测试,我会说使用pyautogui(对于Python)和Robot Class(对于Java)并使用Tab / Enter / Key Press方法来完成工作。
2)如果您打算在Remote Machine aka VM上运行测试,请在RemoteMachine / VM上设置AutoIT并使用AutoIT库For Robot Framework。
答案 1 :(得分:0)
经过一些额外的挖掘,结果发现在这种情况下,<input type=file>
元素不可见。左下方的红色框是浏览器尝试处理传递给它的文件,而没有已知的方法与不可见的元素进行交互。
将元素显示属性从'style.display =“none”`更改为'style.display =“block”'允许元素在屏幕上可见,并被选中。
我在尝试传递.csv文件之前实现了一个'execute javascript'关键字步骤,现在效果非常好。
代码:
execute javascript window.frames[0]; document.querySelector( "input[name='file-uploader']" ).style.display = "block";