var path = require('path');
var fileToUpload = protractor.basePath+'/home/raghavendra/Downloads/gayle_laakmann_-_business_resume.doc';
var absolutePath = path.resolve(fileToUpload);
element.all(by.css('input[type="file"]')).sendKeys(absolutePath);
browser.sleep(5000);
在执行此测试用例时,它显示测试已通过,但未上传。
答案 0 :(得分:0)
这个想法是不会触发"选择文件"你无法控制的对话。相反,使用input
将密钥发送到相应的type="file"
元素,然后提交表单(如果未自动提交):
var fileInput = $('input[type=file]');
fileInput.sendKeys(absolutePath);
fileInput.submit(); // would submit the form
并确保input[type=file]
定位器足够好并且您实际上定位了所需的input
(检查是否有与定位器匹配的单个元素)。
答案 1 :(得分:0)
Sending keys应该在一个元素上,而不是element array finder。
var path = require('path');
var fileToUpload = protractor.basePath+'/home/raghavendra/Downloads/gayle_laakmann_-_business_resume.doc';
var absolutePath = path.resolve(fileToUpload);
element(by.css('input[type="file"]')).sendKeys(absolutePath);
要提交文件,如果您的网站上有上传按钮,那么我会点击该文件。如果您要将文件拖放到网站上进行自动上传,那么我建议您也发送返回密钥。