尝试单击iFrame内的“我接受所有cookie”按钮(该弹出窗口仅针对欧盟国家/地区ip显示)。 您也可以在这里查看jsfiddle.net /#&togetherjs = VgKpE0jfJF。
//index.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless:false,
ignoreHTTPSErrors: true,
slowMo: 50,
args: ['--window-size=1440,900', '--disable-gpu', "--disable-features=IsolateOrigins,site-per-process", '--blink-settings=imagesEnabled=true']
});
const page = await browser.newPage();
await page.goto('https://www.oracle.com/cloud/cost-estimator.html');
await page.waitFor(3000)
const frame = page.frames().find(f => f.name() === 'iframe');
const acceptBtn = await frame.$(`a[class="call"]`);
await acceptBtn.click();
await page.screenshot({path: 'example.png'});
//await browser.close();
})();
我得到的错误
UnhandledPromiseRejectionWarning: TypeError: Cannot read property '$' of undefined
at
请帮助。谢谢
答案 0 :(得分:2)
据我所知,此iframe在HTML代码中没有名称,因此您可以尝试使用其src(URL):
const frame = page.frames().find(f => f.url().startsWith('https://consent-pref.trustarc.com/'));