量角器 - 通过量角器上传文件/运行exe

时间:2016-03-23 15:33:42

标签: javascript angularjs testing protractor angularjs-e2e

我有一个用Angular编写的网站,我正在尝试进行端到端的测试 使用量角器。该网站有一个“添加按钮”,打开“选择文件对话框”。我希望能够从量角器添加文件,但它不会上传文件或关闭对话框。

我尝试创建一个.exe文件,通过(autoIt)控制对话框,它工作正常(当弹出对话框我运行.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 个答案:

答案 0 :(得分:1)

由于它使用了webdriver,因此无法使用Protractor控制窗口对话框。

上面的代码不会将文件路径输入到Windows对话框中,而是将绝对文件路径直接发送到页面上的文件上传元素。

如果删除$('#uploadButton').click();它应该有效,但是如果您正在测试的网站不允许这种类型的注入,您可能需要编写一个脚本来手动公开该元素。

有关详细信息,请参阅How to upload file in angularjs e2e protractor testing