page.waitForNavigation: 但我们通过代码执行到页面跳转时,我们需要等待跳转完成再作其他事情。使用page.waitForNavigation会等待跳转完成。(一般作用在点击链接或按钮的页面跳转功能上)
非常好的视频:https://www.youtube.com/channel/UC6zpMYvmo86MrylcJG4PH6A/videos ,从10.2开始看
中文api查询: https://zhaoqize.github.io/puppeteer-api-zh_CN/#/
其他参见:
https://www.bilibili.com/video/av21754950/?spm_id_from=trigger_reload
https://www.jianshu.com/p/eee456d7543f
1.浏览器控制台执行: await page.evaluate(() => console.log(`url is ${location.href}`)); // page.evaluate浏览器执行
2.page.on('console', msg => console.log('PAGE LOG:', msg.text())); // page.on('console',function(){}) page.on 监听浏览器事件,不如click,mouseover...所有事件都能监听,这里监听的浏览器的console事件
3.获取页面元素,queryselector获取单个(简写为$eval), querySelectorAll获取多个(简写为$$eval)
4page.waitFor(pars), 如果pars是数字表示超时时间; 如果是字符串表示选择器(等价于
page.waitForSelector 或
page.waitForXPath); 如果是function等价于
page.waitForFunction()注意只有函数return true才结束;三种。
注意waitFor原意是等待什么的返回true,如果是function的话,function会循环执行直到function返回true(意思是如果function不返回true,且不超时,会死循环)。 如果要控制循环,需要使用this对象