Playwright 在 C# 里的玩法,和 Node.js 那套是两码事。不少人在 NuGet 里搜 playwright 包就直接装了,结果项目跑起来就报错——因为压根不是那个东西。C# 这边官方唯一支持的是 Microsoft.Playwright,而且装完包还不算完,浏览器二进制得单独下一遍。这三个坑,我先帮你拆解几个关键点,一个个来看。

安装与初始化:别踩这些常见坑

先说第一步,很多人以为 dotnet add package playwright 能搞定,实际会收到一个找不到包的报错。正确的做法是:

截图黑屏怎么办?

接下来是截图问题。代码写好了,Page.ScreenshotAsync() 也调了,结果返回一个空文件或者黑屏图片。这大概率不是代码逻辑的锅,而是 Chromium 启动时默认走了 headless 模式,但某些页面偏偏依赖 GPU 或系统字体渲染,headless 下根本绘制不出来。

几种解法:

登录态保持与多页复用

最后说说登录态。每次调用 browser.NewContextAsync() 都会得到一个干净的会话,page 一旦关闭,Cookie 和 localStorage 全丢了 —— 这不是 bug,框架就这么设计的。

不过值得一提的是,Playwright 的 C# 绑定对异步取消的支持比较弱,比如 page.WaitForNa vigationAsync() 传入 CancellationToken 可能不响应。真正稳的做法是设置超时参数:new PageWaitForNa vigationOptions { Timeout = 15000 },而不是依赖 token 中断。这点细节,踩过的都知道。

本文转载于:https://www.php.cn/faq/2311617.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。