使用木偶师时,我曾经使用以下代码行来获取新选项卡:
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( 未处理的承诺拒绝警告: 类型错误: 无法读取未定义的属性"goto">
我是唯一一个出现这种错误的人吗?
这与你在木偶师中使用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
。
尝试消除此错误后,我得到的代码如下所示:
const browser = await playwright.chromium.launch()
const context = await browser.defaultContext()
const [page] = await context.pages()
await page.goto('http://example.com')
我把newContext()
改成defaultContext()
.