2016-03-23 14 views
3

Ich habe eine Website in Angular geschrieben und ich versuche, Ende-zu-Ende-Tests mit Winkelmesser zu tun. Die Website hat einen "Hinzufügen-Button", der "Dateiauswahl-Dialog" öffnet. Ich möchte in der Lage sein, eine Datei vom Winkelmesser hinzuzufügen, aber es lädt die Datei nicht hoch oder schließt das Dialogfeld.Winkelmesser - Datei hochladen/Ausführen exe über Winkelmesser

Ich habe versucht, eine .exe Datei zu erstellen, um das Dialogfeld über (AutoIT) steuert und es funktioniert gut (wenn das Dialogfeld i die .exe laufen Pop-up und alles funktioniert gut). Ich verstehe jedoch nicht, wie ich dem Winkelmesser sagen kann, dass er ein .exe startet, nachdem das Dialogfeld erscheint.

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(); 

Antwort

1

Sie können Windows-Dialogfelder mit Protractor steuern, da es 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.

Wenn Sie die $('#uploadButton').click(); entfernen, sollte es funktionieren, aber wenn die Website, auf der Sie testen, diese Art der Injektion nicht zulässt, müssen Sie möglicherweise ein Skript schreiben, um das Element manuell verfügbar zu machen.

Weitere Informationen finden Sie unter How to upload file in angularjs e2e protractor testing.

+0

Hi Ich habe bereits eine exe-Datei mit aoutoit gemacht, die sich auf das "select file window" konzentriert und eine Datei auswählt, die ich will und das Fenster schließt (und es funktioniert super). Ich muss nur verstehen, wie ich der Website (über Winkelmesser) sagen, klicken Sie auf den Button und führen Sie die EXE-Datei .Was brauche ich zu schreiben, muss ich asynchronen Lauf exe Befehl über Winkelmesser schreiben - wirklich Hilfe brauchen! !! –