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

基于Selenium的Protractor E2E测试在IE11无法运行:超时问题

解决IE11上Protractor E2E测试超时及JS错误的方案

我之前在IE11上跑Protractor测试时也踩过几乎一模一样的坑,结合我的排查经验,给你几个实用的解决方向:

1. 修正IE11的Protected Mode设置

这是IE驱动最常见的“坑”:IE的所有安全区域(Internet、本地Intranet、可信站点、受限站点)的Protected Mode必须保持一致(全部开启或全部关闭)。你可以手动打开「Internet选项」→「安全」标签页逐一调整;也可以在Protractor配置文件里添加以下配置临时跳过检查(不推荐长期依赖,建议还是手动调好系统设置):

capabilities: {
  browserName: 'internet explorer',
  ignoreProtectedModeSettings: true
}

2. 延长超时时间适配IE的慢速度

IE11的执行速度远不如Chrome/Firefox,默认的超时阈值很容易触发失败。你需要在protractor.conf.js里做两处调整:

  • 全局脚本超时:allScriptsTimeout: 15000(默认是11000,调到15秒基本能覆盖大多数场景)
  • Jasmine测试用例超时:在测试文件开头添加jasmine.DEFAULT_TIMEOUT_INTERVAL = 15000;

3. 关闭IE的增强保护模式

这个模式会拦截WebDriver向IE注入脚本,直接导致异步脚本错误。操作步骤:
打开「Internet选项」→「高级」标签页,找到增强保护模式选项,取消勾选后重启IE浏览器。

4. 升级WebDriver/IEDriverServer版本

你当前用的Selenium版本是2.53.1,这个版本和IE11的兼容性存在已知问题。建议:

  • 升级到Selenium 3.x以上的稳定版本
  • 匹配对应版本的IEDriverServer(优先选32位版本,64位IE11驱动容易出现不稳定情况)

5. 添加IE专属的稳定配置

在Protractor配置里补充这些IE特有的配置,能大幅提升稳定性:

capabilities: {
  browserName: 'internet explorer',
  enablePersistentHover: false,
  ie.edgeScroll: true,
  requireWindowFocus: true, // 强制IE获取焦点,避免交互操作失败
  ie.ensureCleanSession: true // 每次测试前清空IE会话
}

你的测试错误信息:

【测试错误输出】Jasmine用例超时。正在重置WebDriver控制流。[19:03:47] ["should not allow Clifton to create a sub-folder inside a folder previously created by Emmett"] 失败:异步脚本中出现JavaScript错误。(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:1.29秒 Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:3...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:50:06