2016-10-27 77 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; 
相關問題