Puppeteer常用方法汇总
- puppeteer.launch
- 无头模式
true 直接运行代码,false 会跳出chrome浏览器,默认是true - slowMo 指定时间减慢Puppeteer的操作
- devtools: true,会打开chrome的开发者工具
const browser = await puppeteer.launch({ headless: true, devtools: false, slowMo: 250, });
-
常见自动化登录页面
const browser = await puppeteer.launch(); const page = await browser.newPage(); //创建一个 Page 实例 await page.goto('http://www.baidu.com/'); await page.type('input[id="kw"]', 'puppeteer'); //输入 await page.click('input[id="su"]'); //点击 page.screenshot() 截图 await page.waitFor(2000); //等2s await page.waitForSelector('div[class="result c-container "]'); //等dom加载完 await browser.close() //关闭浏览器
-
控制scrollh滑动
// 1、第一个参数控制左右移动,第二个参数是控制上下移动 await page.$eval('xxxx',div => div.scrollTo(1000,1000) ); // 2、只上下移动和只是左右移动 await page.waitFor(2000); await page.$eval('xxxx',div => div.scrollTop=10 );//上下移动 await page.$eval('xxxx',div => div.scrollLeft=10 );//左右移动
-
点击两次
await page.click('xxxx',{ clickCount: 2 });
-
清空输入框值
const links = await page.evaluate(() => { return Array.from(document.querySelectorAll('div[class="result c-container "]')); });; const links = await page.$$eval('div[class="result c-container ', els => Array.from(els).map(el=> el));
-
设置页面视窗大小
await page.setViewport({ width: 1800, height: 900 });
-
eval
const Value = await page.$eval('x', x => x.value);//获取x标签value值 const innerText = await page.$eval('#x',x => x.innerText );// 得到标签之间的文本 const html = await page.$eval('x', x => x.outerHTML);//获取x标签html内容 const text = await page.$eval('x', x => x.id);得到x标签id的值 const links = await page.$$eval('div[class="result c-container ', els => Array.from(els).map(el=> el));//获取搜索列表信息
-
puppeteer 自动性能测试
https://www.jianshu.com/p/93836da836c0 -
puppeteer 拦截页面请求
https://blog.csdn.net/Revivedsun/article/details/82811165