我正在编写一个Selenium测试用例,其中一个步骤是通过Dropzone.js上传文件。
(由于Selenium可以在浏览器中运行Javascript,所以如果它可以在Javascript中以编程方式完成,也可以。)
我想避免一直模拟打开文件浏览器窗口,选择文件等,因为这超出了Web驱动程序可以处理的范围并变得非常复杂。在伪代码中,我想做这样的事情:
1. Select some Dropzone element
2. Set file path
3. Submit (upload the file)
在现有问题(Unable to upload file using python selenium webdriver on http://www.dropzonejs.com)中提到了一种可能的方法,它使用“dz-hidden-input”元素(DOM文件输入)。
不幸的是它不起作用(至少在当前版本的Dropzone中不起作用) - 在将文件设置为元素之后,Dropzone .files仍为空并且不会进行上传。
在查看Dropzone源代码后,我通过扩展上述内容找到了一个有效的解决方案:
1. Set file path in the "dz-hidden-input" element
2. Use javascript to retrieve the File object from the element
3. Pass the file to dropzone.addFile(file)
但我担心的是它真的是一个黑客,因为隐藏输入和.addFile都没有记录,如果Dropzone改变实现等,测试将在未来中断。
有没有更好/有记录的方法来做到这一点?
(澄清 - 我正在尝试上传新文件,而不是显示Dropzone常见问题解答中提到的现有文件)
答案 0 :(得分:1)
点击进入按钮 - >使用网络驱动程序剪贴板/ java机器人 - >粘贴/输入文件位置+文件名>命中机器人进入。
examples:
hour:1,3,2,9,7,5
what i want is :1,2,3,5,7,9
what can i do .thanks