【发布时间】:2016-07-28 09:38:45
【问题描述】:
我正在寻找使用 Protractor 测试上传文件。
理想场景:
- 在表单上,用户首先应该点击“上传文件”按钮
- 接下来会出现一个窗口,他们可以在其中搜索文件
- 最后,文件被选中。
createJobTest.js
it('should click upload file button', function() {
createJobPage.step5UploadFile.click().then(function(){
browser.waitForAngular();
});
});
})
var path = require('path');
it('should upload a file', function() {
var fileToUpload = '../desktop/test.txt',
absolutePath = path.resolve(__dirname, fileToUpload);
$('input[type="file"]').sendKeys(absolutePath);
$('#uploadButton').click();
});
createJobPage.js
this.step5UploadFile = element(by.id('step5--upload-file'));
createJob.html
<span class="btn btn-blue-one btn-upload" id="step5--upload-file" flow-btn translate="uploadfile"></span>
上传文件窗口打开,但出现此错误:
Failed: No element found using locator: By(css selector, input[type="file"])
非常感谢任何帮助!
【问题讨论】:
-
@KCaradonna 感谢您的评论,尝试过但仍然遇到相同的错误:(
-
当您使用量角器上传文件时,您无需点击上传文件按钮。您正在将要上传的文件的 absolutePath 直接发送到文件上传元素,并且您已经在代码中正确完成了该操作。我的猜测是您尝试将文件发送到的元素不再可见,因为它隐藏在上传文件对话框下方。您可以通过删除第一个“it”块和 $('#uploadButton').click(); 来解决这个问题。在你上面的代码中。让我知道这是否有帮助,我可以将其作为答案提交。
标签: angularjs testing file-upload protractor angularjs-e2e