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

使用axe core和webdriverjs的无障碍测试用例报错:UnhandledPromiseRejectionWarning

解决Ubuntu 22.04上Selenium+axe无障碍测试启动失败问题

一、修正代码中的Promise处理问题

你的代码混用了await和.then(),且analyze回调使用async会导致未捕获的Promise拒绝,同时driver.close()仅关闭窗口而非终止驱动进程,这些问题会加重启动异常。修正后的代码如下:

const AxeBuilder = require('@axe-core/webdriverjs');
const { Builder, promise } = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');

promise.USE_PROMISE_MANAGER = false;

async function main() {
    let driver;
    try {
        const options = new firefox.Options();
        // 适配Ubuntu无头环境的参数
        options.headless()
               .addArguments('--no-sandbox')
               .addArguments('--disable-dev-shm-usage')
               .addArguments('--disable-gpu');

        driver = new Builder()
            .forBrowser('firefox')
            .setFirefoxOptions(options)
            .build();

        await driver.get('https://digital.hamburg.de/');
        const results = await new AxeBuilder(driver).analyze();
        console.log(results.violations);
    } catch (e) {
        console.error("测试执行失败:", e.message);
        console.error(e.stack);
    } finally {
        if (driver) {
            await driver.quit(); // 彻底终止驱动进程
        }
    }
}

main().catch(err => console.error("全局未捕获错误:", err));

二、解决Ubuntu环境下Firefox依赖缺失问题

Ubuntu服务器版默认缺少Firefox图形运行所需的依赖,这是驱动启动失败(错误码2)的核心原因之一。执行以下命令安装依赖:

sudo apt update && sudo apt install -y firefox libgtk-3-0 libdbus-glib-1-2 libxt6 libx11-xcb1 libxcomposite1 libxdamage1 libxrandr2 libasound2 libpangocairo-1.0-0 libcups2 libatspi2.0-0 libxss1 libnss3

三、确保Geckodriver与Firefox版本兼容

Geckodriver和Firefox版本必须严格匹配,否则会出现启动异常:

  1. 查看当前Firefox版本:firefox --version
  2. 下载对应版本的Geckodriver,解压后放到/usr/local/bin/目录,赋予执行权限:
chmod +x /usr/local/bin/geckodriver

四、验证环境可用性

执行以下命令测试Firefox无头模式是否能正常启动:

firefox --headless --no-sandbox --disable-dev-shm-usage https://digital.hamburg.de/

如果命令能正常执行无报错,说明环境配置没问题,再重新运行测试代码。

内容的提问来源于stack exchange,提问作者Jaw. M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:55:22