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

如何在TestCafe中仅为多窗口测试禁用Native Automation?

在TestCafe中为特定测试禁用Native Automation模式

Native Automation是TestCafe的全局 runner 级配置,无法在单次测试运行中针对单个测试切换该模式。要实现仅为多窗口测试禁用Native Automation,可通过以下两种方案解决:

方案1:利用测试元数据+CLI命令拆分执行

步骤1:为测试添加元数据标记

修改你的测试代码,给需要多窗口的测试添加元数据标识:

import { Selector, t } from 'testcafe';
fixture('two tests')
    .page(process.env.SITE_URL)

test('test1', async t => {
     // 常规测试逻辑
})
// 为多窗口测试添加元数据
test.meta({ requiresMultiWindow: true })('test2', async t => {
     // 使用多窗口的测试逻辑
})

步骤2:执行两次CLI命令

分别运行常规测试(启用Native Automation)和多窗口测试(禁用Native Automation):

  • 运行常规测试:
testcafe chrome:headless --native-automation your-test-file.js --test-meta "requiresMultiWindow=false"
  • 运行多窗口测试:
testcafe chrome:headless your-test-file.js --test-meta "requiresMultiWindow=true"

方案2:使用TestCafe编程式API批量执行

通过TestCafe的Node.js API编写脚本,一次性完成两组测试的不同配置执行:

const createTestCafe = require('testcafe');

(async () => {
    const testcafe = await createTestCafe('localhost', 1337, 1338);

    try {
        // 运行启用Native Automation的常规测试
        const regularTestsRunner = testcafe.createRunner();
        await regularTestsRunner
            .src('./your-test-file.js')
            .browsers('chrome:headless')
            .filter(test => !test.meta.requiresMultiWindow)
            .run({ nativeAutomation: true });

        // 运行禁用Native Automation的多窗口测试
        const multiWindowTestsRunner = testcafe.createRunner();
        await multiWindowTestsRunner
            .src('./your-test-file.js')
            .browsers('chrome:headless')
            .filter(test => test.meta.requiresMultiWindow)
            .run({ nativeAutomation: false });
    } finally {
        await testcafe.close();
    }
})();

执行该脚本即可自动完成两组测试的分环境运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:23:20