我有一个用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();
答案 0 :(得分:1)
由于它使用了webdriver,因此无法使用Protractor控制窗口对话框。
上面的代码不会将文件路径输入到Windows对话框中,而是将绝对文件路径直接发送到页面上的文件上传元素。
如果删除$('#uploadButton').click();
它应该有效,但是如果您正在测试的网站不允许这种类型的注入,您可能需要编写一个脚本来手动公开该元素。
有关详细信息,请参阅How to upload file in angularjs e2e protractor testing。