NodeJS Selenium 如何为webdriver设置相对路径?
Node.js Selenium ChromeDriver相对路径配置方案
方案1:手动指定本地ChromeDriver二进制路径
你可以将对应版本的ChromeDriver二进制文件存放在项目目录内,比如项目根目录下的driver文件夹中,再通过代码指定路径,无需配置系统环境变量:
- 引入Node.js内置
path模块处理路径,避免不同系统路径分隔符兼容问题 - 使用
selenium-webdriver的Chrome服务构建类指定驱动路径
示例代码如下:
const path = require('path'); const { Builder } = require('selenium-webdriver'); const chrome = require('selenium-webdriver/chrome'); // 拼接相对路径,__dirname为当前脚本所在目录,按需调整后面的相对路径 // Windows系统驱动文件名为chromedriver.exe,路径对应改为./driver/chromedriver.exe const driverPath = path.join(__dirname, './driver/chromedriver'); // 注册自定义路径的ChromeDriver服务 const service = new chrome.ServiceBuilder(driverPath).build(); chrome.setDefaultService(service); // 后续正常初始化浏览器实例即可 const driver = new Builder() .forBrowser('chrome') .build();
方案2:使用npm chromedriver包(更适合多设备运行场景)
通过安装官方维护的chromedrivernpm包,会自动匹配当前设备的Chrome版本下载对应驱动,无需手动下载文件和配置路径,跨设备运行更省心:
- 首先安装依赖:
npm install chromedriver selenium-webdriver - 代码示例:
// 引入后selenium会自动识别驱动路径,无需额外配置 require('chromedriver'); const { Builder } = require('selenium-webdriver'); const driver = new Builder() .forBrowser('chrome') .build();
- 补充说明:如果采用手动存二进制文件的方案,需要为Windows、Mac、Linux三类系统准备对应版本的驱动文件,代码中可以通过
process.platform判断当前系统类型,自动切换对应驱动的路径。
内容的提问来源于stack exchange,提问作者utf_8
相关产品推荐
相关产品推荐

