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('[email protected]');
  await page.getByRole('button', { name: 'Submit' }).click();
  await expect.element(page.getByText('Done')).toBeVisible();
});

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

详细参考