我正在使用 Puppeteer 访问我的 GitHub 关注页面中的按钮(取消关注按钮)。因为当我抓取这个页面时这个按钮不存在,我认为它是由用户端 JS 代码创建的。然后我使用
waitForSelector
命令来等待这个按钮,但页面再次找不到该按钮。这是我的代码:
const test2=async()=>{
let url='https://github.com/nariman?tab=following'
await browserInit()
await page.goto(url)
await page.waitForSelector('input.btn')
console.log('done')
}
这会导致这个错误:
TimeoutError: Waiting for selector `input.btn` failed: Waiting failed: 30000ms exceeded
您可以在自己的 GitHub 页面中进行测试。有什么解决办法吗?
您可以使用称为 MutationObserver 的东西,例如 page.on('mutationover',callback),通过它您可以监视 DOM 更改并专门等待取消关注按钮插入