2016-03-23 33 views
3

私は角度で書かれたWebサイトを持っており、分度器を使用してエンドツーエンドのテスト をしようとしています。このウェブサイトには、「ファイルを選択」ダイアログボックスが開く「追加ボタン」があります。分度器からファイルを追加できるようにしたいが、ファイルをアップロードしない、またはダイアログボックスを閉じる。分度器 - 分度器を介してファイル/実行exeをアップロード

ダイアログボックスを(autoIt)で制御するファイルを.exeに作成しようとしました。ダイアログボックスが表示されたら、.exeが正常に動作しています。しかし、ダイアログボックスが表示された後、分度器に.exeを起動するように指示する方法はわかりません。

var path = require('path'); 
it('should upload a file', function() { 
    var fileToUpload = '...\folder\xxx.txt', 
    absolutePath = path.resolve(__dirname, fileToUpload); 
    $('#uploadButton').click(); 
    $('input[type="file"]').sendKeys(absolutePath); 
}); 

var exec = require('child_process').execFile; 
var fun = function() { 
    console.log("fun() start"); 
    exec('c:\\Upload_Nonce.exe', function(err, data) { 
     console.log(err) 
     console.log(data.toString());      
    }); 
} 
fun(); 

答えて

1

それはwebdriverをを使用していますので、あなたは分度器でWindowsダイアログボックスを制御することはできません。

上記のコードは、ファイルパスをWindowsダイアログボックスに入力するのではなく、絶対ファイルパスをページ上のファイルアップロード要素に直接送信しています。

$('#uploadButton').click();を削除しても問題はありませんが、テストしているWebサイトでこの種の注入が許可されていない場合は、手動で要素を公開するスクリプトを作成する必要があります。

詳細については、How to upload file in angularjs e2e protractor testingを参照してください。

+0

こんにちは、私はすでにaoutoitでexeファイルを作成しました。これは "ファイルの選択ウィンドウ"に焦点を当て、私が望むファイルを選択してウィンドウを閉じました。私はちょうどボタンをクリックし、exeファイルを実行するWebサイトを(分度器を介して)どのように理解する必要があります。私は書く必要があります、私は飛行機を介して非同期実行exeコマンドを書く必要があります - 本当に助けが必要です! !! –