Контекст драматурга (кукловода) - пустой массив при запуске? - PullRequest
1 голос
/ 25 января 2020

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

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

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

Основная цель этого - меньшее количество вкладок, мое приложение работает легче. Но когда я использую playwright, кажется, что контекст еще не содержит какой-либо страницы.

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' из неопределенного

Я единственный, кто получил такого рода ошибки?

Ответы [ 2 ]

1 голос
/ 25 января 2020

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

0 голосов
/ 25 января 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().

...