建置playwright專案 - daniel-qa/RooCode GitHub Wiki

建置playwright專案

  • 建立一個新的資料夾來存放 Playwright 測試專案
mkdir PlaywrightTests
  • 進入剛剛建立的資料夾
cd PlaywrightTests
  • 用 dotnet CLI 建立一個新的 NUnit 測試專案
dotnet new nunit

「dotnet new nunit」會建立一個預設的 .NET NUnit 測試專案架構,包含基本的測試類別和設定檔

  • 為這個專案加入 Playwright for NUnit 的 NuGet 套件
dotnet add package Microsoft.Playwright.NUnit

這個套件整合了 Playwright 和 NUnit 測試框架,提供瀏覽器自動化功能與斷言支援

  • 安裝 NUnit3TestAdapter

NUnit3TestAdapter 是什麼?

這是用來讓 Visual Studio 和 dotnet test 正確識別並執行 NUnit 測試的轉接器(Adapter)。

dotnet add package NUnit3TestAdapter
  • 運行單元測試
dotnet test

Sample Code 說明,設定 Browser 可視模式

  • UnitTest1.cs
using Microsoft.Playwright;
using NUnit.Framework;

namespace PlaywrightTests;

public class Tests
{
    [Test]
    public async Task Test1()
    {
        using var playwright = await Playwright.CreateAsync();
        await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false });
        var page = await browser.NewPageAsync();
        await page.GotoAsync("https://iis.del.net/");
        await Task.Delay(3000);
        await page.Locator("text=教師身份").ClickAsync();

        // 輸入帳密
        await page.GetByPlaceholder("用戶編號").FillAsync("guest");
        await page.GetByPlaceholder("密碼").FillAsyn c("1234");
        await page.GetByPlaceholder("密碼").PressAsync("Enter");

        await Task.Delay(5000);
    }
}

Headless = false ,才可以看到 Browser

  • 在 C# 裡,只要你用了 using(或 await using),當這個變數離開作用域(scope)時,資源就會自動被釋放。這是一種簡潔又安全的「自動收工」機制

  • Playwright 內建的 text= 是支援模糊比對(partial text match)的