Puppeteer笔记(一):Puppeteer简介
2024-08-29 20:01:09
一、Puppeteer简介
Puppeteer是NPM库,它提供了NodeJS高级API来控制Chrome。Puppeteer 默认以无头(无界面)方式运行,但也可以配置为运行有界面的Chrome。
Puppeteer 提供了一系列 API,通过 Chrome DevTools Protocol 协议控制 Chromium/Chrome 浏览器的行为
二、什么是Headless Chrome
(1)在无界面的环境中运行 Chrome
(2)通过命令行或者程序语言操作 Chrome
(3)无需人的干预,运行更稳定
(4)在启动 Chrome 时添加参数 --headless,便可以 headless 模式启动 Chrome
三、Puppeteer 结构
API分层结构,反映了浏览器结构
- Puppeteer: 使用DevTools协议与浏览器进行通信
- Browser:对应一个浏览器实例,一个 Browser 可以包含多个 BrowserContext、
- BrowserContext: 对应浏览器一个上下文会话,就像我们打开一个普通的 Chrome 之后又打开一个隐身模式的浏览器一样,BrowserContext 具有独立的 Session(cookie 和 cache 独立不共享),一个 BrowserContext 可以包含多个 Page
- Page:表示一个 Tab 页面,通过 browserContext.newPage()/browser.newPage() 创建,browser.newPage() 创建页面时会使用默认的 BrowserContext,一个 Page 可以包含多个 Frame
- Frame: 一个框架,每个页面有一个主框架(page.MainFrame()),也可以多个子框架,主要由 iframe 标签创建产生的
- ExecutionContext: 是 javascript 的执行环境,每一个 Frame 都一个默认的 javascript 执行环境
- ElementHandle: 对应 DOM 的一个元素节点,通过该该实例可以实现对元素的点击,填写表单等行为,我们可以通过选择器,xPath 等来获取对应的元素
四、Puppeteer 用途
- 网页截图或者生成 PDF
- 自动提交表单,进行 UI 测试,键盘输入等。
- 创建一个时时更新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。
- 捕获网站的时间线,帮助诊断性能问题
- 网络爬虫
- ......
最新文章
- 我用ANDROID STUDIO开发,页面上总包这个警告,很烦!网上说是sdk版本问题,但是我是基于25开发的,最小版本也是19,有没有老司机啊?3克油
- C# 软件绑定QQ群类开源放出
- zabbix-proxy3.0.4编译安装
- Mobius 反演
- openstack(liberty):部署实验平台(三,简单版本软件安装 之cinder,swift)
- Altium Designer学习: 原理图和PCB元件对应查找
- ThinkPHP的数据库访问的简单操作
- 使用xshell出现乱码
- Android getResources的作用和须要注意点
- 网络版shell之网络编程练习篇--telnet服务端
- bootstrap-dialog的使用
- application(expand)--easyui
- [Windows Phone] 导览控制项(Navigation controls)
- Unity3D 回合制 网上源码 目前还在研究构思
- 锁开销优化以及 CAS 简单说明
- 在VS中连接MySQL
- Git Extensions 和 Tortoisegit 到底是什么?Git For VS(Git For Visual Studio)(Visual Studio 中使用 Git)
- VSCode 打开文件tab键空格数量异常问题
- 谈谈我对Linux系统学习的历程回顾
- ASP.NET Session的实现原理分析
热门文章
- js前端加密,php后端解密(crypto-js,openssl_decrypt)
- /sbin/mount.vboxsf: mounting failed with the error: Protocol error
- CCS进阶——div的宽度和高度是由什么决定的?
- Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
- .NET平台上的编译器不完全列表(转别)
- k8s namespace限制调研
- Centos 6.5升级gcc : 源码安装 + rpm安装
- codeforce 1311 C. Perform the Combo 前缀和
- CodeForces - 1102A(思维题)
- 11.秋招复习简单整理之什么是ICMP协议,ICMP协议的功能是什么?