📜  puppeteer js 无头模式 - Javascript (1)

📅  最后修改于: 2023-12-03 15:18:43.712000             🧑  作者: Mango

Puppeteer JS 无头模式

简介

Puppeteer 是一款由 Google 开发的 Node.js 库,用于控制 Chrome 或 Chromium 浏览器的自动化测试工具。Puppeteer 提供了一套方便的 API,可让开发者通过编写 JavaScript 脚本来模拟人的行为操作浏览器,如点击、刷新、输入等等,并在浏览器中获取到所需的数据。

无头模式是 Puppeteer 的一种运行方式,也就是说,在这种模式下,Puppeteer 可以在后台运行 Chrome 或 Chromium 浏览器,从而不会在电脑屏幕上弹出浏览器窗口,从而提高程序的运行效率,也方便了开发者在服务器上运行自动化脚本。

如何使用
安装 Puppeteer

在使用 Puppeteer 之前,需要先安装它。可以通过以下命令在项目中安装 Puppeteer:

npm install puppeteer
启动 Chrome 或 Chromium 浏览器

在使用 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() 方法获取页面的标题等信息。