Overview
Puppeteer 单词的意思为:傀儡师、木偶人、操纵木偶的人。听起来是那么的awesome!!
根据文档中的说明,可以理解为Puppeteer是一个node库,这个库提供了很多操作chrome的api,允许通过JS代码操纵 Chrome 浏览器。
中文文档
核心功能
- 生成页面 PDF。
- 抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。
- 自动提交表单,进行 UI 测试,键盘输入等。
- 创建一个时时更新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。
- 捕获网站的 timeline trace,用来帮助分析性能问题。
- 测试浏览器扩展。
开始使用
运行
npm init -y
一个项目
npm i puppeteer
安装puppeteer时会默认安装最新版本的Chromium。
Chromium是啥?Chrome浏览器基于Chromium,新特性会在Chromium中先行先试。具体的可以自行百度一下。
创建index.js文件
(async () => {
const browser = await puppeteer.launch({
headless: false,
slowMo: 100,
});
const page = await browser.newPage();
await page.setViewport({width: 1000, height: 1000});
await page.goto('https://www.baidu.com/');
await page.focus('.s_ipt');
await page.keyboard.type('京东');
await page.click('.s_btn');
})();
node index.js 打开百度,输入京东,搜索结果。