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,希望對您有用!