node.js - 如何使用 NodeJS 将传入请求记录到 Playwright Chromium 服务器?
问题描述
我希望将所有传入到剧作家铬服务器的请求写入控制台。
这段代码应该完成这项工作:
// NODEJS SERVER
const browserServer = await chromium.launchServer({
headless: false,
port: 9904,
logger: {
isEnabled: (name, severity) => name === 'browser',
log: (name, severity, message, args) => console.log(`${name} ${message}`)
}
})
// NODEJS CLIENT CONSOLE APP
const browser = await chromium.connect({
wsEndpoint: "SERVER ENDPOINT"
})
const page = await browser.newPage()
服务代码运行良好 - 每当从客户端应用程序发送请求时,它都会打开 Chrome,但是,不会将日志写入控制台。基本上,例如,我无法跟踪向服务器发送了多少请求。
Playwright 文档几乎没有 BrowserType.launchServer() 方法的示例。
非常感谢任何帮助。谢谢!
对于那些有同样问题的人,我自己找到了解决方法
在launchServer的logger参数中,不按name="browser"过滤日志事件,只需将isEnabled设置为true即可捕获各种事件。从那里,您可以捕获名为“Target.createBrowserContext”的“协议”事件,这意味着客户端已请求远程服务器打开 Chrome 并执行测试。不幸的是, chromium.connect() 不会在服务器端生成任何事件,而是 browser.newPage() 会。这是执行 chromium.connect() 后您可以捕获的最接近的事件,并将在日志中指示服务器活动。
解决方案
推荐阅读
- html - 有没有办法在浏览器中查看大的 ppsx 文件
- javascript - 如何使用选择的 jquery 删除和更新我的选项?
- c++ - 交替错误:“参数 0 的尺寸无效”
- asp.net - 当池处于集成模式时未设置 IsPostBack
- java - 如何使用 java 实用地检查 PC 中 docker 桌面的可用性
- android - 如何在ANDROID中实现设计?
- python - Matplotlib:使用颜色图时线图图例上的颜色错误
- sql - 返回不在 Oracle 表中的提供值列表
- python - matplotlib.rc() 中参数“组”的元素
- python-3.x - 如何根据两列差异数据框删除重复行