Почему следующий сценарий puppeteer дает значение undefined для executioncontext.evaluatehandle?

В настоящее время я изучаю API Puppeteer и использую v1.9.0. У меня есть следующий код, из которого я пытаюсь нажать кнопку в iframe:

const changePrefsFromAllToNone = async () => {

    try {
        const browser = await puppeteer.launch({
            headless:false,
            slowMo: 250});

        const page = await browser.newPage();
        await page.setViewport({width: 1280, height: 800});
        await page.goto(baseUrl);
        await page.waitForSelector('.widget-title');
        const frame = page.frames().find(f => f.name() === 'iframe');
        const prefsDenyButton = await frame.$eval('#option-refuse-phv1L');
        prefsDenyButton.click();

    } catch (error) {
        console.log(error);
    }
};

changePrefsFromAllToNone();

с ошибкой:

Error: The following is not a function: undefined
at ExecutionContext.evaluateHandle 

Я использую пример прямо с сайта кукловода: https://github.com/GoogleChrome/puppeteer/blob/v1.9.0/docs/api.md#

0
0
792
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы ищете селектор запросов, а не eval. Вы также пропустили await. Это должно работать:

        const prefsDenyButton = await frame.$('#option-refuse-phv1L');
        await prefsDenyButton.click();

Другие вопросы по теме