puppeteer笔记草稿
# 嵌套 iframe 如何寻找
- 直接在所有的 frames 里进行寻找
// 得到的是所有 iframe 包括嵌套的,以及顶级窗口
// iframe 的顺序是按照 bfs 顺序
// iframe url 不含 hash 值
let frames = await page.frames()
const result = frames.find(f=>f.url()==='xxx')
1
2
3
4
5
2
3
4
5
- 得到某个 iframe 后,寻找其子 iframe
let frames = await page.frames()
const frame = frames.find(f=>f.url()==='xxx')
const childFrames = await frame.childFrames()
const result = childFrames.find(f=>f.url()==='xxx')
1
2
3
4
2
3
4
# iframe 的 url 总是拿的最新值
let frames = await page.frames();
frames.forEach(f => {
// 输出的总是最新值
console.log(f._url, f.url())
});
// 如果 frame 的 url 变更后 f._url 也会变更
1
2
3
4
5
6
2
3
4
5
6
# 插件升级,配置如何同步升级
# 查看页面的报错情况
// 需要在页面导航前注册
page.on('pageerror', (error)=>{
})
page.goto('xxx')
1
2
3
4
5
2
3
4
5
在控制台上手动抛出的错误,不会触发 pageerror 回调
编辑 (opens new window)
上次更新: 2023/08/23, 09:32:05