我正在寻找使用 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();
});
创建作业页面.js
this.step5UploadFile = element(by.id('step5--upload-file'));
创建作业.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"])
非常感谢任何帮助!
最佳答案
一种方法是发送 key 。
var fileToUpload =filepath;
var absolutePath = path.resolve(__dirname, fileToUpload); // absolute path
var fileElement = element(by.css('input[type="file"]'));
browser.executeScript("arguments[0].style.visibility = 'visible'; ", fileElement.getWebElement());
fileElement.sendKeys(absolutePath);
另一种方式是在桌面窗口进行操作。这是主要功能。您可以引用我已经回答过的以下链接中的答案。
这就是我在我的应用程序中使用的。
关于angularjs - 使用 Protractor 测试上传文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477317/