在angularjs e2e量角器测试中上传文件

时间:2016-03-24 08:46:37

标签: angularjs protractor absolute-path angularjs-e2e e2e-testing

我想知道为什么测试上传文件(使用absolutePath)可以正常工作,但它不会关闭文件选择对话框。

这是我的代码:

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");
});

提前谢谢!

1 个答案:

答案 0 :(得分:2)

您无法使用Protractor控制窗口对话框,因为它使用了webdriver。

上面的代码不会将文件路径输入到Windows对话框中,而是将绝对文件路径直接发送到页面上的文件上传元素。因此,您根本不需要打开Windows对话框来上传文件。

如果您有兴趣与Windows对话框进行交互,可以使用一些可以帮助您的软件包,例如https://github.com/octalmage/robotjs