puppeteer调试方法

4,543 阅读1分钟

1.开启界面

const browser = await puppeteer.launch({headless: false});

2.减慢操作

const browser = await puppeteer.launch({
   headless: false,
   slowMo: 250 // slow down by 250ms
 });

3.捕获控制台输出

page.on('console', msg => console.log('PAGE LOG:', msg.text()));
await page.evaluate(() => console.log(`url is ${location.href}`));

4.在浏览器中使用调试器

const browser = await puppeteer.launch({devtools: true});
//修改默认timeout时间
jest: jest.setTimeout(100000);
jasmine: jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;
mocha: this.timeout(100000); 
//添加一个debugger
await page.evaluate(() => {debugger;});

5.详细日志, 已经协议过滤

//详细日志
env DEBUG="puppeteer:*" node script.js
//可以通过命名空间启用/禁用调试输出
env DEBUG="puppeteer:protocol" node script.js //protocol connection messages
env DEBUG="puppeteer:session" node script.js // protocol session messages (protocol messages to targets)
//协议流量可能相当嘈杂。此示例筛选出所有网络域消息
env DEBUG="puppeteer:session" env DEBUG_COLORS=true node script.js 2>&1 | grep -v '"Network'

6.借用ndb调试

安装: npm install -g ndb
add a debugger to your Puppeteer (node) code
在测试之前添加ndb
ndb jest or ndb mocha (or npx ndb jest / npx ndb mocha)
开始调试吧