首页 > 解决方案 > Playwright (Puppeteer) 上下文在启动时是一个空数组?

问题描述

使用 puppeteer 时,我曾经使用以下代码行获取新标签:

const browser = await puppeteer.launch()
const [page] = await browser.pages()

await page.goto('http://example.com')

这样做的主要目的是减少标签数量,我的应用运行得更轻。但是当我使用剧作家时,上下文似乎还没有包含任何页面。

const browser = await playwright.chromium.launch()
const context = await browser.newContext()
const [page] = await context.pages()

await page.goto('http://example.com')

我的代码正在运行,但我不断收到此错误消息:

(节点:47248)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“goto”

我是唯一一个遇到这种错误的人吗?

标签: javascriptnode.jspuppeteerchromiumplaywright

解决方案


如果您使用createIncognitoBrowserContext.

const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const [page] = await context.pages(); //Page is null here

await page.goto('http://example.com');

createIncognitoBrowserContext在木偶戏和剧作家中都是newContext没有页面的。

正如您在回答中提到的,您可以使用默认上下文或newPage在您刚刚创建的上下文中调用。


推荐阅读