Контекст драматурга (кукловода) - это пустой массив при запуске?
При использовании кукольника я обычно открывал новую вкладку, используя следующие строки кода:
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 из undefined
Я единственный, у кого такая ошибка?
2 ответа
То же самое поведение вы получили бы в кукловоде, если бы использовали 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()
.