2017-08-29 8 views
1

NightwatchJSで画像をアップロードしようとしていますが、値を入力に設定しても機能しません。私はアップロードセクションにDropzoneJSを使用しています。NightwatchJSでファイルアップロードをシミュレートする(DropzoneJS)

私はすでにから解決策を試してみました: NIghtwatch.js File Upload with Dropzone.js

HTML

<input type="file" multiple="multiple" style="visibility: hidden; 
position: absolute; top: 0px; left: 0px; height: 0px; width: 0px;"> 

はJavaScript

module.exports = { 
    "Upload test": function(browser) { 
    browser 
     .url('localhost:8080') 
     .assert.elementPresent('form > div:nth-of-type(2) > div > div:nth-of-type(3) > div:nth-of-type(2) > div > input') 
     .execute('document.querySelectorAll("input[type=file]")[0].style.display = "block";')   
     .setValue('form > div:nth-of-type(2) > div > div:nth-of-type(3) > div:nth-of-type(2) > div > input', require('path').resolve(__dirname + '/img.jpg')) 
     .assert.valueContains('form > div:nth-of-type(2) > div > div:nth-of-type(3) > div:nth-of-type(2) > div > input', require('path').resolve(__dirname + '/img.jpg')) 
     .end(); 
    } 
} 

ナイトウォッチは、テストが失敗したときのスクリーンショットを作成し、スクリーンショットさを私はuploしなかったことを示しています広告の何か、そして最後の断言が失敗する理由。

答えて

0

Google Chromeドライバを使用してファイルをアップロードしています。ちょうど使用:

.setValue("input[type=file]",`/path/to/file`) 
0

変更は、それがに:

<input type="file" multiple="multiple" style="position: absolute; left: -9999px;"> 

入力が見えるとみなされますが、それは実際に画面上に表示されていません。

関連する問題