Puppeteer是自动化浏览器任务的无头浏览器。这是一些功能的列表:
- 关闭无头模式
const browser = await puppeteer.launch({
headless: false
// ...
});
- 将视口大小调整到窗口大小
const browser = await puppeteer.launch({
// ...
defaultViewport: null
});
- 模拟屏幕如何通过
emulateMediaType
方法显示给用户
await page.emulateMediaType('screen');
- 将页面保存为具有指定路径,格式,比例因子和页面范围的PDF文件
await page.pdf({
path: 'path.pdf',
format: 'A3',
scale: 1,
pageRanges: '1-2',
printBackground: true
});
- 使用先前存在的用户的凭据跳过登录某些网站。用户数据目录是
chrome://version
页面的Profile Path
值的父。
const browser = await puppeteer.launch({
// ...
args: [
'--user-data-dir=C:\\Users\\<USERNAME>\\AppData\\Local\\Google\\Chrome\\User Data'
]
});
- 通过从
chrome://version
URL设置可执行路径来使用Chrome实例而不是Chromium。在运行脚本之前关闭Chrome浏览器
const browser = await puppeteer.launch({
executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
// ...
});
- 等待加载特定元素,然后单击一些元素
await page.$eval('#header', async (headerElement) => {
// ...
headerElement
.querySelectorAll('svg')
.item(13)
.parentNode.click();
});
- 在某些元素上触发悬停事件
await page.$eval('#header', async (headerElement) => {
const hoverEvent = new MouseEvent('mouseover', {
view: window,
bubbles: true,
cancelable: true
});
headerElement.dispatchEvent(hoverEvent);
});