跳到主要内容

安装

简介

Playwright 专为满足端到端测试的需求而创建。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。可以在 Windows、Linux 和 macOS 上进行本地测试或在持续集成(CI)环境中测试,支持无头模式或有头模式,并具备原生移动设备模拟功能。

你可以选择使用 Playwright 提供的 MSTest、NUnit 或 xUnit 基类 来编写端到端测试。这些类支持在多个浏览器引擎上运行测试、并行化测试、调整启动/上下文选项,并且每个测试都能直接获取 Page/BrowserContext 实例。或者,你也可以使用 手动编写测试框架。

  1. 首先使用 dotnet new 创建一个新项目。这将创建 PlaywrightTests 目录,其中包含一个 UnitTest1.cs 文件:
dotnet new mstest -n PlaywrightTests
cd PlaywrightTests
  1. 安装必要的 Playwright 依赖项:
dotnet add package Microsoft.Playwright.MSTest
  1. 生成项目,以便 playwright.ps1bin 目录中可用:
dotnet build
  1. 安装所需的浏览器。此示例使用 net8.0,如果你使用的是不同版本的 .NET,则需要调整命令,将 net8.0 替换为你使用的版本。
pwsh bin/Debug/net8.0/playwright.ps1 install

如果 pwsh 不可用,你必须 安装 PowerShell

添加示例测试

使用以下代码编辑 UnitTest1.cs 文件,以创建一个示例端到端测试:

UnitTest1.cs
using System.Text.RegularExpressions;
using Microsoft.Playwright;
using Microsoft.Playwright.MSTest;

namespace PlaywrightTests;

[TestClass]
public class ExampleTest : PageTest
{
[TestMethod]
public async Task HasTitle()
{
await Page.GotoAsync("https://playwright.dev");

// 期望标题 “包含” 一个子字符串。
await Expect(Page).ToHaveTitleAsync(new Regex("Playwright"));
}

[TestMethod]
public async Task GetStartedLink()
{
await Page.GotoAsync("https://playwright.dev");

// 点击开始链接。
await Page.GetByRole(AriaRole.Link, new() { Name = "Get started" }).ClickAsync();

// 期望页面有一个名为 “安装” 的标题。
await Expect(Page.GetByRole(AriaRole.Heading, new() { Name = "Installation" })).ToBeVisibleAsync();
}
}

运行示例测试

默认情况下,测试将在 Chromium 上运行。可以通过 BROWSER 环境变量或调整 启动配置选项 来进行配置。测试以无头模式运行,这意味着运行测试时不会打开浏览器。测试结果和测试日志将显示在终端中。

dotnet test

有关以有头模式运行测试、运行多个测试、运行特定配置等更多信息,请参阅我们关于 运行和调试测试 的文档。

系统要求

  • Playwright 作为 .NET Standard 2.0 库分发。我们推荐使用 .NET 8。
  • Windows 10 及更高版本、Windows Server 2016 及更高版本或适用于 Linux 的 Windows 子系统 (WSL)。
  • macOS 14 Ventura 或更高版本。
  • Debian 12、Ubuntu 22.04、Ubuntu 24.04,适用于 x86-64 和 arm64 架构。

接下来做什么