📅  最后修改于: 2023-12-03 15:18:43.712000             🧑  作者: Mango
Puppeteer 是一款由 Google 开发的 Node.js 库,用于控制 Chrome 或 Chromium 浏览器的自动化测试工具。Puppeteer 提供了一套方便的 API,可让开发者通过编写 JavaScript 脚本来模拟人的行为操作浏览器,如点击、刷新、输入等等,并在浏览器中获取到所需的数据。
无头模式是 Puppeteer 的一种运行方式,也就是说,在这种模式下,Puppeteer 可以在后台运行 Chrome 或 Chromium 浏览器,从而不会在电脑屏幕上弹出浏览器窗口,从而提高程序的运行效率,也方便了开发者在服务器上运行自动化脚本。
在使用 Puppeteer 之前,需要先安装它。可以通过以下命令在项目中安装 Puppeteer:
npm install puppeteer
在使用 Puppeteer 进行自动化测试时,需要先启动 Chrome 或 Chromium 浏览器。可以通过如下代码启动浏览器:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com');
// 进行后续操作
await browser.close();
})();
上面的代码中,puppeteer.launch()
方法可以启动 Chrome 或 Chromium 浏览器,并返回一个 Browser
实例。browser.newPage()
方法创建一个新的页面,并返回一个 Page
实例。page.goto()
方法用于导航到指定的网址。
在 Puppeteer 中设置无头模式非常简单,只需要在启动浏览器的时候加上 headless: true
的配置即可。例如:
const browser = await puppeteer.launch({ headless: true });
启用无头模式后,Chrome 或 Chromium 浏览器将在后台运行,并不会显示浏览器窗口。
以获取百度首页的标题为例,展示 Puppeteer JS 无头模式的使用。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://www.baidu.com');
const title = await page.title();
console.log(title);
await browser.close();
})();
上面的代码中,page.title()
方法获取页面的标题,返回值为一个字符串,用 console.log(title)
将标题打印出来。
Puppeteer JS 无头模式是 Puppeteer 的一种运行方式,可以在后台运行 Chrome 或 Chromium 浏览器,提高自动化测试的运行效率。使用 Puppeteer JS 无头模式时,需要先安装 Puppeteer,然后通过 puppeteer.launch({ headless: true })
的方式启动浏览器即可。在实战中,可以通过 page.title()
方法获取页面的标题等信息。