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

Selenium+Axe测试遇(intermediate value).findElement is not a function错误,Cookie弹窗如何处理

报错根因

你当前的(intermediate value).findElement is not a function报错是逻辑写法错误导致的:findElement是WebDriver实例的原生方法,不属于AxeBuilder实例,你将点击逻辑写在了AxeBuilder的调用链上,自然找不到对应方法。如果要通过点击同意按钮处理弹窗,调整代码顺序即可,把点击逻辑放到Axe测试执行之前。

最优处理方案:Chrome启动阶段直接屏蔽Cookie弹窗

你要求的启动浏览器时就阻止弹窗的方案是该场景的最优解,不需要适配不同站点的同意按钮选择器,测试稳定性更高,不会因为前端迭代修改按钮属性导致用例失效。
通过给Chrome配置启动参数和用户偏好,直接从浏览器层面禁用Cookie同意提示,完整实现代码如下:

const AxeBuilder = require('@axe-core/webdriverjs');
const WebDriver = require('selenium-webdriver');
const {By} = require('selenium-webdriver');
const {Options} = require('selenium-webdriver/chrome');

// 配置Chrome启动参数
const chromeOptions = new Options();
// 禁用Cookie提示弹窗
chromeOptions.addArguments('--disable-cookie-controls');
chromeOptions.setUserPreferences({
  'profile.default_content_setting_values.cookies': 1, // 允许站点保存Cookie
  'profile.managed_default_content_settings.cookie_notifications': 2 // 全局禁用Cookie通知
});

// 初始化driver时加载Chrome配置
const driver = new WebDriver.Builder()
  .forBrowser('chrome')
  .setChromeOptions(chromeOptions)
  .build();

driver.get('mysite').then( () => {
  // 无需额外处理弹窗,直接执行Axe测试
  new AxeBuilder(driver)
    .analyze((err, results) => {
      if (err) {
        // 错误处理逻辑
      }
      console.log(results.violations);
    });
});

可选方案:修复点击同意按钮的代码写法

如果部分站点自定义弹窗无法通过浏览器配置屏蔽,可以用修复后的点击逻辑处理:

const AxeBuilder = require('@axe-core/webdriverjs');
const WebDriver = require('selenium-webdriver');
const {By} = require('selenium-webdriver');

const driver = new WebDriver.Builder().forBrowser('chrome').build();

driver.get('mysite').then( async () => {
  // 先通过driver实例找到同意按钮点击
  await driver.findElement(By.id('accept')).click();
  // 点击完成后再执行Axe测试
  new AxeBuilder(driver)
    .analyze((err, results) => {
      if (err) {
        // 错误处理逻辑
      }
      console.log(results.violations);
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 02:42:03