7

微软开源的Web测试和自动化神器 Playwright

 2 years ago
source link: https://www.cnblogs.com/myshowtime/p/15681884.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

wechat_logo_s1.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK