ng-file-uploadをE2Eテストするには?ng-file-uploadの分度器E2Eテスト
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop here
</div>
ng-file-uploadをE2Eテストするには?ng-file-uploadの分度器E2Eテスト
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop here
</div>
分度器のバージョンを「1.6.1」に、ng-file-uploadを「9.0.1」に設定します。バージョンbower.jsonと設定:
"ng-file-upload": "~9.0.1",
そして、次のコマンドを実行:
bower install
角度コードしなければならないもの npm install [email protected]
編集ファイルを:これらを行うには、行為が次のように作業するボタンが含まれています:
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop
</div>
<button id="btn2" ng-click="uploadFileToUrl(fileBTS, btsUrl);">upload</button>
次のよう E2Eテスト用のジャスミン・コードは次のとおりです。
it('a sample test...',function(){
//Assemble
browser.get('/the_page_url');
//Act
var fileToUpload = './some-file.csv';
var path = require('path');
var absolutePath = path.resolve(__dirname,fileToUpload);
var input = element(by.css('input[type=file]'));
input.sendKeys(absolutePath);
element(by.id('btn2')).click();
browser.waitForAngular();
//Assert
expect(2).toEqual(2);
//browser.sleep(5000);
//browser.pause();
});
とパスがインストールされるために、次の操作を行います。
npm install path
問題だけではProtractor
で、あなたが実際に行うことができない、ということです指定されたファイルへのファイルのドラッグアンドドロップがページ上にあります。また、別の問題は、ブラウザのアップロードダイアログウィンドウを開くと、Protractor
/WebDriverJS
で制御できないということです。
共通のアプローチはtype="file"
でinput
要素を見つけると、それはあなたがをアップロードしたいファイルへ絶対パスを含むに鍵を送信することです。アップロードするにはinput
がページに表示されている必要がありますが、通常はinput
が隠れているため、「送信キー」を実行するには表示する必要があります。ここにサンプルソリューションを参照してください:
私はdownvotesが原因分度器1.6.1インストール手順である疑いがあります。あなたが1年以上前のバージョンと2つの安定したバージョンを現在の背後で使用することを提案している理由がわからないのですが、私は同意する必要があります。 – alecxe