You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Protractor上传文件时出现“Done, upload failed”错误

Protractor文件上传"Done, upload failed"报错解决方案
  • 确认input[type="file"]元素未被隐藏,可正常接收输入。很多场景下文件选择框会被UI层隐藏,直接调用sendKeys会触发输入异常,可先执行脚本修改元素可见性:
// 移除文件输入框的隐藏相关样式
browser.executeScript(`
  const fileInput = document.querySelector('input[type="file"]');
  fileInput.style.display = 'block';
  fileInput.style.opacity = 1;
  fileInput.style.visibility = 'visible';
`);
// 再输入文件绝对路径
$('input[type="file"]').sendKeys(absolutePath);
  • 校验拼接后的绝对路径准确性,可打印日志确认路径可正常访问目标文件,Windows环境注意路径分隔符转义问题:
var absolutePath = path.resolve(__dirname, fileToUpload);
console.log('上传文件路径:', absolutePath); 
// 本地执行时优先校验该路径对应的文件是否存在、是否有可读权限
  • 增加显式等待避免操作时序异常,输入路径后等待文件输入框回填完成,再触发上传按钮点击:
const EC = protractor.ExpectedConditions;
// 最长等待5秒,确认文件路径已经填入输入框
browser.wait(EC.textToBePresentInElementValue($('input[type="file"]'), fileToUpload), 5000);
element(by.buttonText('Upload')).click();
  • 检查页面同步配置,若开启了browser.ignoreSynchronization = true适配非Angular页面,需要在上传操作前额外等待页面资源完全加载,避免未加载完成的上传接口调用失败。
  • 确认./trial.txt本身符合上传规则,包括文件大小、格式、内容没有命中后端校验拦截逻辑。

内容的提问来源于stack exchange,提问作者Prema Shivarama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 12:06:01