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

Selenium WebDriver报错:无法获取浏览器驱动 技术求助

解决Selenium "Error: Unable to obtain browser driver" 问题

核心原因

你已安装chromedriver包,但未在脚本中让Selenium识别到驱动位置,导致WebDriver无法找到Chrome驱动程序。

修复步骤

1. 在脚本中注册ChromeDriver

修改测试脚本,顶部引入chromedriver包,让它自动注册到Selenium驱动管理器:

const {By, Key, Builder} = require("selenium-webdriver");
require('chromedriver'); // 新增该行,注册ChromeDriver

async function test_case() {
    let driver = await new Builder().forBrowser("chrome").build();

    await driver.get("https://google.com");
    await driver.findElement(By.name("q")).sendKeys("Hello, World!", Key.RETURN);

    // 用setTimeout替代setInterval,避免重复执行quit操作
    setTimeout(async function() {
        await driver.quit(); // 加await确保退出操作完成
    }, 10000);
}

test_case();

2. 手动指定驱动路径(备用方案)

若上述步骤无效,可手动指定驱动路径,确保Selenium能精准定位:

const {By, Key, Builder} = require("selenium-webdriver");
const chrome = require('selenium-webdriver/chrome');
const chromedriver = require('chromedriver');

async function test_case() {
    let driver = await new Builder()
        .forBrowser("chrome")
        .setChromeService(new chrome.ServiceBuilder(chromedriver.path)) // 手动指定驱动路径
        .build();

    await driver.get("https://google.com");
    await driver.findElement(By.name("q")).sendKeys("Hello, World!", Key.RETURN);

    setTimeout(async function() {
        await driver.quit();
    }, 10000);
}

test_case();

3. 验证Chrome与驱动版本匹配

确保本地Chrome浏览器版本和安装的chromedriver版本(^124.0.1)一致。若Chrome自动更新,需重装对应版本的驱动:

npm uninstall chromedriver
npm install chromedriver@<对应Chrome版本号>

4. 修复脚本异步问题

原脚本用setInterval会重复触发driver.quit(),易引发报错,改用setTimeout仅执行一次,并通过await保证退出操作完成。

额外检查

  • 确认系统环境变量中无冲突的旧驱动路径
  • 可尝试清理依赖后重新安装:
rm -rf node_modules package-lock.json
npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:00:04