Сейчас я изучаю 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#
Вы ищете селектор запросов , а не eval. Вы также пропустили await. Это должно работать:
eval
await
const prefsDenyButton = await frame.$('#option-refuse-phv1L'); await prefsDenyButton.click();