2016-10-27 49 views
0

我正在使用node-webkit/nw.js作为自动化工具来测试我的Web应用程序。 我的应用程序有一个记录模式来捕获所有的点击事件和键盘事件。 所有捕获的事件都记录到一个文件中,并且在播放模式下,记录的事件将从干净状态运行。如何以编程方式上传node-webkit/nw.js中的文件

但是,由于文件上载打开了文件对话框,我无法模拟文件选择。自从使用节点webkit以来,我可以通过编程从用户系统读取文件,并使用FormDataBlob将其上传为blob。但是,基于文件上传,必须触发事件,并且在上传完成后,其他字段必须用图像填充。

有没有一种方法可以以编程方式附加表单数据中的文件? 我可以理解这是不可能在一个普通的浏览器,因为这将是一个安全问题。在一个节点的webkit环境中,无论如何都能够在后台访问和上传用户文件。那么,是否可以修改输入文件的值或通过其他方式在Form中添加一个blob并上传文件?

回答

0

似乎涉及的步骤在nw.js的github页面中详细阐述,但不在文档中详细说明。

获取表单节点和输入节点引用的步骤。

//Detect if button clicked is inside a form. 
//In my case all attachments use same component. So I know the no. of levels to move up 
if(activeElm.parentNode.parentNode.parentNode.tagName=="FORM"){ 
    //Navigate to input elm and save it as new activeElm. 
    //Navigation will differ based on your page. 
    activeElm = activeElm.parentNode.parentNode.parentNode.getElementsByTagName('input')[0]; 
} 

模拟文件附件的步骤。

var f = new File('/path/to/file', 'name'); 
var files = new FileList(); 
files.append(f); 
elm.files = files; 
相关问题