选择文件机器人框架而不上传文件

时间:2017-04-19 22:18:28

标签: robotframework filechooser

我正在开发一个使用choose file机器人框架关键字升级文件的场景。测试运行,当选择文件执行时,它会点击<input type="file">元素的定位器,UI会在页面底部显示一个红色框(参见附件),但文件不会上传。

enter image description here

我不确定用户界面是否不知道如何处理上传,或者我的代码是否有错误:

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}变量包含文件的操作系统完整路径,文件位于该位置。作为验证点,我尝试将文件名更改为不存在的文件名,机器人抛出错误,指出数据不可用。

有没有人遇到过这个?

2 个答案:

答案 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";

enter image description here