puppeteer打开多个页面

可以使用npm i puppeteer或安装阿里云的cnpm来安装,有时候安装会发生错误,这时就要找到node_modules文件夹删除其中的puppeteer文件夹,再重新运行安装命令
也可以使用yarn add puppeteer来安装
在安装过程中会自动下载chrome无头浏览器,这就比selenium要方便
举一个访问淘宝的例子

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
	headless : false,
    defaultViewport:{ width: 1920, height: 1080 }
	});
  const page = await browser.newPage();
  const page2 = await browser.newPage();
  await page.goto('https://www.taobao.com/');
  await page2.goto('https://www.baidu.com/');
  await page.screenshot({path: 'taobao.png'});

  await page.on('console', msg => {
    for (let i = 0; i < msg.args().length; ++i)
      console.log(`${i}: ${msg.args()[i]}`); // 译者注:这句话的效果是打印到你的代码的控制台
  });
  page.evaluate(() => console.log('hello', 5, {foo: 'bar'})); 
})();

Puppeteer 初始化的屏幕大小默认为 800px x 600px。这个尺寸也可以通过 Page.setViewport() 设置
slowMo 将 Puppeteer 操作减少指定的毫秒数。这样你就可以看清发生了什么,这很有用。
browser.disconnect() 断开 Puppeteer 和浏览器的连接,但 Chromium 进程仍然在运行。在调用 disconnect 之后,Browser 对象本身被认为是处理过的并不能再被使用。用于创建新页面后,将权限交于使用人

上一篇:javascript – 尝试Catch无法捕获UnhandledPromiseRejectionWarning


下一篇:把HTML转成PDF的4个方案及实现