选择文件机器人框架不上传文件
Choose File Robot Framework not uploading file
我正在开发一个使用 choose file
机器人框架关键字上传文件的场景。 The test runs and when the choose file executes, it hits the locator for the <input type="file">
element, the UI shows a red box at the bottom of the page (see attachment), but the file is not uploaded .
我不确定 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}
变量包含文件的 OS 完整路径,文件位于该位置。作为验证点,我尝试将文件名更改为不存在的文件名,然后机器人抛出一条错误,指出数据不可用。
有人遇到过这个吗?
我之前遇到过同样的问题,我尝试了多种方法,例如模拟关键字操作并在文件上传对话框中输入文件路径,使用选择文件关键字,机器人框架的 AutoIT 库。
1) 如果您打算 运行 在本地机器上进行测试,我会说使用 pyautogui(对于 Python)和 Robot Class(对于 Java)并使用 Tab/Enter/Key 按方法和 来完成这项工作。
2) 如果您打算 运行 在远程机器(即虚拟机)上进行测试,请在 RemoteMachine/VM 上设置 AutoIT 并使用机器人框架的 AutoIT 库。
经过一些额外的挖掘,发现在这种情况下,<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";
我正在开发一个使用 choose file
机器人框架关键字上传文件的场景。 The test runs and when the choose file executes, it hits the locator for the <input type="file">
element, the UI shows a red box at the bottom of the page (see attachment), but the file is not uploaded .
我不确定 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}
变量包含文件的 OS 完整路径,文件位于该位置。作为验证点,我尝试将文件名更改为不存在的文件名,然后机器人抛出一条错误,指出数据不可用。
有人遇到过这个吗?
我之前遇到过同样的问题,我尝试了多种方法,例如模拟关键字操作并在文件上传对话框中输入文件路径,使用选择文件关键字,机器人框架的 AutoIT 库。
1) 如果您打算 运行 在本地机器上进行测试,我会说使用 pyautogui(对于 Python)和 Robot Class(对于 Java)并使用 Tab/Enter/Key 按方法和 来完成这项工作。
2) 如果您打算 运行 在远程机器(即虚拟机)上进行测试,请在 RemoteMachine/VM 上设置 AutoIT 并使用机器人框架的 AutoIT 库。
经过一些额外的挖掘,发现在这种情况下,<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";