2

Ich würde gerne wissen, warum das Testen der Upload-Datei (mit absolutePath) gut funktioniert, aber es schließt nicht den Dateiauswahldialog.Hochladen der Datei in angularjs e2e Winkelmesser Test

Dies ist mein Code:

var path = require('path'); 
it('Upload file', function() { 
    var button = element(by.css('button')).click(); 
    expect(button.isEnabled()).toBe(true); 
    var test= ['../file/1.pdf','../file/2.pdf','../file/3.pdf']; 
    for (var i=0;i<test.length;i++) 
    { 
    var absolutePath = path.resolve(__dirname, test[i]); 
    element(by.css('input[type="file"]')).sendKeys(absolutePath); 
    element(by.buttonText("Submit")).click(); 
    } 
    element.all(by.css('span[ng-show="upload.complete"]')).each(function(complete){ 
    var text = complete.getText(); 
    expect(text).toEqual("Upload Complete"); 
}); 

Vielen Dank im Voraus!

Antwort

2

Sie können Windows-Dialogfelder nicht mit Protractor steuern, da dieser Webdriver verwendet.

Der obige Code wird den Dateipfad nicht in das Windows-Dialogfeld eingeben, sondern sendet den absoluten Dateipfad direkt an das Datei-Upload-Element auf der Seite. Daher müssen Sie das Windows-Dialogfeld überhaupt nicht öffnen, um eine Datei hochzuladen.

Wenn Sie an der Interaktion mit Windows-Dialogen interessiert sind, gibt es einige Pakete, die Ihnen helfen könnten, wie https://github.com/octalmage/robotjs