如何解决在带有伪操纵者的iframe中单击按钮
尝试单击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
请帮助。谢谢
解决方法
据我所知,此iframe在HTML代码中没有名称,因此您可以尝试使用其src(URL):
const frame = page.frames().find(f => f.url().startsWith('https://consent-pref.trustarc.com/'));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。