Контекст драматурга (кукловода) - это пустой массив при запуске?

При использовании кукольника я обычно открывал новую вкладку, используя следующие строки кода:

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

Я единственный, у кого такая ошибка?


person Edi Imanto    schedule 25.01.2020    source источник


Ответы (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 в контексте, который вы только что создали.

person hardkoded    schedule 25.01.2020
comment
Сначала это немного сбивало с толку, но теперь это обретает смысл. Спасибо - person Edi Imanto; 27.01.2020

После попытки избавиться от этой ошибки я получаю такой код:

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

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

Я меняю newContext() на defaultContext().

person Edi Imanto    schedule 25.01.2020