微軟開源的Web測試和自動化神器 Playwright

SpringLeee發表於2021-12-13

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

微軟開源的Web測試和自動化神器 Playwright

相關文章