将 常用api 与相关完整api链接推荐
中文 https://zhaoqize.github.io/puppeteer-api-zh_CN/ 内部开发api https://chromedevtools.github.io/devtools-protocol/tot/Page
https://github.com/GoogleChrome/puppeteer
https://www.runoob.com/xpath/xpath-functions.html
https://www.runoob.com/cssref/css-selectors.html
https://gitee.com/hugo110/puppeteer-demo
方法名称 | 方法说明 | 个人经验 |
browser.newPage() | 创建一个 Page 实例 | |
browser.close() | 关闭浏览器 | 注意catch住异常关闭,避免浏览器进程没有关闭掉,耗费系统资源 |
browser.pages() | 获取所有打开的 Page 实例 | 打开多个tab页处理时切换page特别有用 |
方法名称 | 方法说明 | 个人经验 |
puppeteer.launch | 启动浏览器 | 调试时推荐slowMo,headless,devtools 这三个参数 |
page.goto(url) | 打开指定网站 | 注意使用它的waitUntil参数,默认是load,有时会超时 |
page.screenshot | 把当前页面截图 | 不但可以截图也可以截取元素的图片奥 |
Page.$(selector) | 获取单个元素,底层是调用的是 document.querySelector() | |
Page.$$(selector) | 获取一组元素,底层调用的是 document.querySelectorAll() | 注意返回的参数经过Array.form了,可能有些参数不能够使用 |
Page.$eval() | 此方法在页面内执行 document.querySelector,然后把匹配到的元素作为第一个参数传给 pageFunction | 是在在浏览器实例上下文中要执行的方法 |
page.$$eval(selector, pageFunction[, …args]) | 此方法在页面内执行 Array.from(document.querySelectorAll(selector)),然后把匹配到的元素数组作为第一个参数传给 pageFunction | |
page.click() | 点击一个元素 | |
Page.emulate | 修改模拟器(客户端)运行配置,模拟设备,参数设备对象,比如 iPhone, Mac, Android 等 |
很重要,所以拿出来单独列一下
方法名称 | 方法说明 | 个人经验 |
page.waitFor | 下面四个个的综合 API,不写就类似于java的Thread.sleep | |
page.waitForFunction(pageFunction[, options[, …args]]) | 等待 pageFunction 执行完成之后 | |
page.waitForNavigation(options) | 等待页面基本元素加载完之后,比如同步的 HTML, CSS, JS 等代码 | |
page.waitForSelector(selector[, options]) | css语法,等待某个选择器的元素加载之后,这个元素可以是异步加载的 | |
page.waitForXPath(xpath[, options]) | xpath语法,等待某个选择器的元素加载之后,这个元素可以是异步加载的 |
方法名称 | 方法说明 | 个人经验 |
page.evaluate(pageFunction, …args) | 返回一个可序列化的普通对象,pageFunction 表示要在页面执行的函数, args 表示传入给 pageFunction 的参数, 下面的 pageFunction 和 args 表示同样的意思。 | 注意是在浏览器页面执行 |
Page.evaluateHandle(pageFunction, …args) | 在 Page 上下文执行一个 pageFunction, 返回 JSHandle 实体 | Page 上下文执行 |
page.evaluateOnNewDocument(pageFunction, …args), | 在文档页面载入前调用 pageFunction, 如果页面中有 iframe 或者 frame, 则函数调用 的上下文环境将变成子页面的,即iframe 或者 frame, 由于是在页面加载前调用,这个函数一般是用来初始化 javascript 环境的,比如重置或者 初始化一些全局变量 | |
Page.exposeFunction | 此方法添加一个命名为 name 的方法到页面的 window 对象 当调用 name 方法时,在 node.js 中执行 puppeteerFunction,并且返回 Promise 对象,解析后返回 puppeteerFunction 的返回值 | 使用时会变成全局的,也可以引用你的类库 |
1.Puppeteer 入门教程 http://www.r9it.com/20171106/puppeteer.html 2.puppeteer学习笔记(五)–API问题解决–使用功能强大的“ eval ”函数 https://www.jianshu.com/p/aa2159356fbd 3.puppeteer自动化测试系列之二—puppeteer常用方法 4.puppeteer自动化测试系列之三—端对端测试中常用的 Puppeteer 操作 5.puppeteer自动化测试系列之 五—常见问题