我想知道为什么测试上传文件(使用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");
});
提前谢谢!
答案 0 :(得分:2)
您无法使用Protractor控制窗口对话框,因为它使用了webdriver。
上面的代码不会将文件路径输入到Windows对话框中,而是将绝对文件路径直接发送到页面上的文件上传元素。因此,您根本不需要打开Windows对话框来上传文件。
如果您有兴趣与Windows对话框进行交互,可以使用一些可以帮助您的软件包,例如https://github.com/octalmage/robotjs