浏览器模式
Rstest 提供了浏览器模式(Browser Mode),允许你在真实浏览器中运行测试,而不是使用 jsdom 或 happy-dom 等模拟环境。
什么是浏览器模式?
浏览器模式使用 Playwright 在真实浏览器(Chromium、Firefox 或 WebKit)中执行你的测试代码。这意味着你的测试将在与生产环境完全一致的浏览器 API 和行为下运行。
Locator API
Browser Mode 现在支持 Playwright 风格的 Locator 工作流:你可以使用 page.getBy* 进行元素定位,再通过 expect.element(locator) 完成自动等待断言。
这种写法适合希望使用语义化定位(role/label/text)和链式断言的场景,让组件测试和 DOM 测试更接近真实用户交互语义。
详细用法见 浏览器交互。
何时使用浏览器模式
使用以下决策树来判断是否需要浏览器模式:
推荐
即使你的测试在 jsdom 中能正常运行,我们仍然推荐使用浏览器模式。具体优势见下方对比表。
浏览器模式 vs jsdom/happy-dom
浏览器模式与 jsdom/happy-dom 是两种不同的权衡:浏览器模式提供完整的浏览器兼容性和可视化调试,但会消耗更多资源;jsdom/happy-dom 运行更快、更轻量,但只能模拟部分浏览器 API。