Hello Playwright:(1) 从开发到部署

前言

虽然前面写过几篇 C# 使用 Playwright 的文章,但是讲解的不太全面。

看到有朋友有学习这方面的需要:.

Hello Playwright:(1) 从开发到部署

因此,就有了《Hello Playwright》这个系列的产生。

Playwright 介绍

Playwright 是微软开源的一个基于 Node.js 的工具库,可使用相同的API调用Chromium(Google-Chrome、Microsoft-Edge)、WebKit(Apple-Safari)和Mozilla-Firefox浏览器自动执行任务。

因此,通过使用 Playwright, 可以以编程的方式,完成原来需要手工操作浏览器的工作,比如登录网站、提交表单等。

而要在 C# 中使用 Playwright, 可以使用 官方 .NET 移植版本 Playwright for .NET

Playwright 入门

今天的目标,是在开发环境安装 Playwright for .NET,使用示例代码完成第一次运行,并发布到生产环境运行。

1.创建项目

在命令行窗口,使用 dotnet CLI 创建一个控制台应用,并添加 Playwright 依赖:

dotnet new console -n HelloPlaywright_01

cd HelloPlaywright_01

dotnet add package Microsoft.Playwright

Hello Playwright:(1) 从开发到部署

2.安装浏览器

用 VS.NET 打开创建好的项目,在资源管理器的项目名称上点右键,选择“在终端中打开”,进入开发者 PowerShell 窗口:

Hello Playwright:(1) 从开发到部署

Playwright 需要特定版本的浏览器二进制文件才能运行,因此我们需要在开发者 PowerShell 窗口中运行以下命令安装所有受支持的浏览器二进制文件:

dotnet build

.\bin\Debug\net5.0\playwright.ps1 install

Hello Playwright:(1) 从开发到部署

3.编写代码

终于可以编写 Playwright 使用代码了:

var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.baidu.com");
var title = await page.InnerTextAsync("title");
Console.WriteLine(title);

先不解释代码的具体含义,你只需要知道它的作用——访问百度首页,并获取网页标题:

Hello Playwright:(1) 从开发到部署

4.发布

发布方式和普通的 .NET 程序一样。

这里我们选择发布成文件夹,为了演示效果,部署模式选择“独立”,可以不依赖框架运行:

Hello Playwright:(1) 从开发到部署

5.部署

我们将发布文件夹复制到另一台机器上。

但在运行我们的程序之前,需要在这台机器上重新安装 Playwright,但无需安装 dotnet 框架或运行时。

运行发布文件夹下的安装命令:

.playwright\node\win32_x64\playwright.cmd install

Hello Playwright:(1) 从开发到部署

然后,就可以运行我们的控制台程序了:

Hello Playwright:(1) 从开发到部署

结论

今天,我们演示了 Playwright for .NET 从开发到部署的整个流程。