Playwright 是微軟開源的一個用於 Web 測試和自動化的框架, 提供了可靠的端到端測試, 功能非常強大, 可以在測試, 爬蟲,自動化場景中使用。
跨瀏覽器
Playwright 支持所有現代的渲染引擎,包括 Chromium、WebKit 和 Firefox。
跨平台
在 Windows, Linux 和 macOS 提供相同的使用體驗。
跨語言
多語言支持, TypeScript, JavaScript, Python, .NET, Java.
錄制、自動代碼生成 、重放
Playwright for .NET
https://playwright.dev/dotnet/
創建一個控制台項目並添加 Playwright 依賴項
dotnet new console -n PlaywrightDemo
cd PlaywrightDemo
dotnet add package Microsoft.Playwright
dotnet build
修改 Program.cs
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://github.com");
await page.ScreenshotAsync(new PageScreenshotOptions { Path = "screenshot.png" });
}
}
然后直接運行, 程序會后台打開 Chrome 瀏覽器, 訪問 github 並截圖保存
dotnet run
默認情況下,Playwright 以無頭模式運行瀏覽器, 要查看瀏覽器界面, 設置 Headless = false, 另外還可以設置
slowMo來減慢執行速度。
await playwright.Firefox.LaunchAsync(new BrowserTypeLaunchOptions
{
Headless = false,
SlowMo = 50,
});
支持運行過程中進行截圖
var bytes = await page.ScreenshotAsync();
錄制視頻
var context = await browser.NewContextAsync(new BrowserNewContextOptions
{
RecordVideoDir = "videos/"
});
await context.CloseAsync();
官網的文檔也很齊全,感興趣的可以關注 playwright.dev,希望對您有用!
