close
  • 简体中文
  • Browser mode

    Browser Mode API 由 @rstest/browser 提供,目标是让你在浏览器测试中使用 Playwright 风格的 Locator 工作流。

    导出 API

    @rstest/browser 提供的是 Browser Mode 的运行时入口能力,核心职责是定位元素并驱动交互

    其中,page 是查询起点,Locator 负责链式组合与动作执行,BrowserPage 用来描述 page 支持的查询 API,setTestIdAttribute 用于配置 test id 属性名。

    以下是 @rstest/browser 当前导出的 API:

    断言 API

    断言入口是 expect.element(locator)

    当你在 Browser Mode 测试里导入 @rstest/browser(例如 import { page } from '@rstest/browser')时,expect 会自动具备 element 能力。

    它的职责是对 Locator 执行 web-first assertion(带自动等待),例如 toBeVisibletoHaveText

    两者关系可以理解为:@rstest/browser 负责找元素和操作元素expect.element 负责验证元素状态

    示例:查询、交互与断言

    browser-example.test.ts
    import { page } from '@rstest/browser';
    import { expect, test } from '@rstest/core';
    
    test('submits form', async () => {
      await page.getByLabel('Email').fill('dev@rstest.rs');
      await page.getByRole('button', { name: 'Submit' }).click();
      await expect.element(page.getByText('Done')).toBeVisible();
    });

    这个例子里,page 先生成 LocatorLocator 执行 fill/click,最后 expect.element(locator) 对结果做可见性断言,形成完整测试闭环。

    详细参考