Запуск функций в другом контексте javascript в Puppeteer

#javascript #puppeteer

#javascript #puppeteer

Вопрос:

Я хотел бы запустить код JavaScript через evaluate в определенном контексте JavaScript.

введите описание изображения здесь

Код, который я хочу запустить, это Scrivito.getClass("Page").create({ title: "Hello world!" });

Я пробую следующий код, но он выдает ошибку, которая Scrivito не определена.

 const frame = page.frames()[1];
const result = await frame.evaluate("Scrivito.getClass("Page").create({ title: "Hello world!" })");
  

Когда я копирую код Scrivito.getClass("Page").create({ title: "Hello world!" }); в инструментах веб-разработчика Puppeteer Chromium с правильным контекстом, он запускается без проблем.

Что я делаю не так?

Комментарии:

1. Почему вы так уверены .frames()[1] , что это правильный фрейм?

2. Есть только два фрейма. Я думаю, что верхний находится на [0] . Если я выбираю [0] в Puppeteer, я получаю ту же ошибку, что и в Chrome, когда я выбираю верхний контекст.