首页 > 解决方案 > 如何使用 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() 后您可以捕获的最接近的事件,并将在日志中指示服务器活动。

标签: node.jschromiumplaywright

解决方案


推荐阅读