简介
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。 通常用来做为爬虫使用,但是只要与chrome有关的工作都可以使用,比如自动化测试,扩展测试等。
示例
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
开启“有头”模式
const browser = await puppeteer.launch({
headless:false
});
复制操作
await page.keyboard.down('Control');
await page.keyboard.press('KeyV');
await page.keyboard.up('Control');
屏幕截图
区域截图
await page.screenshot({
type: 'jpeg',
path: 'exampl1e.jpg',
quality: 100,
clip: { // 截图区间受屏幕大小影响,用clip可以处理,
x: 0,
y: 0,
width: 200,
height: 600
}
})
元素截图
let ele = await page.$('.ele')
await ele.screenshot({
path: "ele.png",
})
元素操作
ele.evaluate
let box = await page.$(`.element`)
let content = await box.evaluate(node => node.innerText)
console.log(content)
page.$eval
let content = await page.$eval(`.sass_content__3O4ZQ div[role="textbox"]`,node => node.innerText)
console.log(content)