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

安全限制下,如何指定Protractor使用手动下载的ChromeDriver?

我来帮你搞定这个问题——之前我也碰到过类似的情况,手动放了ChromeDriver但Protractor还是自顾自下载新版本,折腾了好一会儿才捋清楚门道。下面是具体的解决步骤:

让Protractor使用手动下载的ChromeDriver

核心思路是在Protractor配置文件里明确指定ChromeDriver的路径,同时确保Angular CLI的e2e命令不会绕过你的配置。

1. 修改Protractor配置文件

你的项目里应该有个protractor.conf.js文件(通常在e2e目录下),打开它做针对性修改:

方案A:直接连接ChromeDriver(推荐,更轻量化)

如果不需要启动完整的Selenium Server,开启directConnect并指定ChromeDriver路径即可,这样Protractor会直接调用你本地的驱动,完全跳过自动更新流程:

exports.config = {
  // 保留你原有的其他配置(比如specs、baseUrl等)
  directConnect: true,
  // 注意:路径要匹配你实际存放的位置,Windows系统要加.exe后缀,Mac/Linux不用
  chromeDriver: '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver.exe',
};

方案B:搭配Selenium Server使用(适合需要兼容多浏览器的场景)

如果你必须启动Selenium Server,需要同时指定Selenium Server的jar包和ChromeDriver路径:

exports.config = {
  // 保留原有配置
  seleniumServerJar: '../node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-xxx.jar', // 替换成你本地的jar包版本号
  chromeDriver: '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver.exe',
  // 禁用自动启动和更新相关的默认行为
  seleniumPort: null,
  seleniumArgs: [],
};

2. 确保Angular CLI遵守你的配置

打开项目根目录的angular.json,找到projects -> 你的项目名 -> architect -> e2e节点,检查并设置webdriverUpdate为false,避免CLI强制触发更新:

"e2e": {
  "builder": "@angular-devkit/build-angular:protractor",
  "options": {
    "protractorConfig": "e2e/protractor.conf.js",
    "webdriverUpdate": false, // 这一步很关键,一定要设为false
    "devServerTarget": "你的项目名:serve"
  }
}

3. 验证配置生效

运行命令时加上--no-webdriver-update参数,确保CLI彻底跳过更新流程:

ng e2e --no-webdriver-update

这时候Protractor就会乖乖使用你手动放置的ChromeDriver v2.27,不会再去chromedriver.storage.googleapis.com下载新版本了。

注意:路径一定要写对!如果你的ChromeDriver不在示例中的位置,要改成你实际存放的相对/绝对路径,相对路径是基于protractor.conf.js所在位置计算的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:40:17