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


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM