首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Puppeteer 入门指引

熟悉爬虫或者 UI 自动化的同学可能会联想到 PhantomJS、CasperJS 或者 Selenium,作为 Chrome DevTools 团队亲自出品和维护的 puppeteer 不管是在功能的完整性...爬取 SPA(Single-Page Application)网站的内容并为 SSR(Server-Side Rendering)网站生成 pre-render 的内容 UI 自动化测试、自动填充/提交表单...、模拟 UI 输入 测试最新的 Javascript 和 Chrome 功能 性能测试,生成 timeline trace 用于定位网站性能问题 测试 Chrome 的插件 当然,puppeteer不是全能的...的一个轻量版本,不会默认下载 Chromium,而是需要选择使用本地或远程的 Chrome。...示例 4 - 自动填充表单提交(在 https://developers.google.com 页面搜索框中输入关键词 Headless Chrome 并搜索) 创建 search.js const

1.5K50
您找到你想要的搜索结果了吗?
是的
没有找到

不仅仅可以用来做爬虫,Puppeteer 还可以干这个!

网上有很多将自动化测试工具作为爬虫的抓取教程,不过仅仅都限于如何获取数据,而我们知道这些基于浏览器的解决方案都有较大的性能开销,而且效率不高,并不是爬虫的最佳选择。...以下是 Puppeteer 可以做的事情: •生成截图和页面 PDF ;•抓取单页应用,产生预渲染内容(即 SSR ,服务端渲染);•自动化表单提交、 UI 测试、键盘输入等等;•创建一个最新的、自动化的测试环境...$(selector) 和 el.type(text) 这两个 API ,分别用于获取元素和输入内容。最后的 elSubmit.click() 是提交表单的操作。...如果用后者的话,可以一次性的将内容输入进来。...相反, Puppeteer 更适合做一些自动化的工作,例如操作浏览器发布文章、发布帖子、提交表单等等。

2.5K30

Puppeteer 入门与实战

利用Puppeteer可以做到爬取页面数据,页面截屏或者生成PDF文件,前端自动化测试(模拟输入/点击/键盘行为)以及捕获站点的时间线,分析网站性能问题。...,是不是就做到将emoji表情保存下来。...1、初探 这是Puppeteer官方提供的一张API分层结构图 从图上我们可以发现,Puppeteer是通过使用Chrome DevTools Protocol(CDP)协议与浏览器进行通信,Browser...":false,"executionContextId":3}} 这种直接操作太不友好,Puppeteer正是实现了遵循CDP的Node顶层API,使我们可以调用简单方便的操作对应的指令。...,经常会碰到表单提交,对于表单中不同字段的校验需要模拟不同的场景,人工的点击效率低,而且每次都需要重复表单输入,比较繁琐。

2K40

Puppeteer 初探之前端自动化测试

puppeteer是一个nodejs的库,支持调用Chrome的API来操纵Web,相比较Selenium或是PhantomJs,它最大的特点就是它的操作Dom可以完全在内存中进行模拟既在V8引擎中处理不打开浏览器...puppeteer功能 1.利用网页生成PDF、图片 2.爬取SPA应用,并生成预渲染内容(即“SSR” 服务端渲染) 3.可以从网站抓取内容 4.自动化表单提交、UI测试、键盘输入等 5.帮你创建一个最新的自动化测试环境...,模拟输入需要我们先调用tap方法模拟点击输入框,tap参数就是元素selector,再用type方法进行输入,输入完了之后在模拟点击登录按钮,登录完了之后我们延迟一段时间截图,顺利的话我们就能重新回到之前的售卖页首页...,底下usrbar因为有了登录态也展示了出来。...console.log("登录"); await page.tap("#u"); //直接操作dom选择器,是不是很方便 await page.type("521017853"); await page.tap

13K64

Headless Testing入坑指南

因为你可以利用无头测试工具提供的命令行+api来自动化地替代大量的简单重复操作,如输入页面地址、刷新页面、表单提交、确认显示数据是否正确等等。...他提供的API全部都是同步的,不是深度嵌套在回调中的。它最初设计用于在没有对外提供api的站点上自动执行任务,但它最常用的点是UI测试和爬去数据。 Mocha是一个运行在Node和浏览器上的测试框架。...在上面的例子中,我们先跳转到“duckduckgo.com”网站,然后在指定的元素内输入“github nightmare”,接着通过选择器点击指定的按钮,再等到指定的元素出现后,最终确认元素中的链接是否与期待一致...安装Puppeteer的方法 下面的例子中,使用Puppeteer来对页面进行截屏。 下面的例子中,使用Puppeteer来对页面数据进行抓取。...通过无头测试,您可以生成网站的截图和pdf文件,从网站上抓取内容,自动提交表单,并模拟键盘输入。 当与无头浏览器结合使用时,它允许你在完全成熟的浏览器中做任何你可以做的事情,不需要浏览器。

1.7K50

用Node.js把HTML转成PDF格式

如果你没有特殊需求,例如在 PDF 中选择文本或对文本进行搜索,那么这就是一种简单易用的方法。 此方法简单明了:从页面创建屏幕截图,并把它放到 PDF 文件中。非常直截了当。...jsPdf from 'jspdf' 3 4function printPDF () { 5 const domElement = document.getElementById('your-id...但是如果你的目标是直接生成一个 PDF 文件,不是对一个已经存在的(并且不断变化的)HTML 页面进行转换,它还是很有用的。...如果需要先登录才能从受保护的页面生成 PDF,首先你要导航到登录页面,检查表单元素的 ID名称,填写它们,然后提交表单: 1await page.type('#email', process.env.PDF_USER...在选择 CSS 打印规则时,你必须在每个浏览器中测试结果,以确保它提供的布局是相同的,并且它不是100%能做到这一点。

6.2K30

无头浏览器自动化:Puppeteer 帮你释放效能 | 开源日报 No.64

由于组件逻辑是使用JavaScript编写不是模板,因此您可以轻松通过应用程序传递丰富数据并将状态保持在DOM之外。...优势: 提供了大量不同领域、不同难度的实战项目 可以按需选择自己感兴趣或需要掌握的知识点进行学习 适合初学者快速入门并深入理解各项技能 microsoft/terminal[4] Stars: 90.7k...其核心优势有: 支持标签 富文本显示 全球化支持 可自定义配置与主题样式 puppeteer/puppeteer[5] Stars: 83.8k License: Apache-2.0 Puppeteer...以下是 Puppeteer 的主要功能: 生成页面的截图和 PDF。 爬取单页应用程序 (SPA) 并生成预渲染内容 (即服务器端渲染)。 自动化表单提交、UI 测试、键盘输入等操作。...灵活性:开发人员可以根据自己需求选择所需工具和库。 扩展性:有很多由社区提供的扩展可方便地添加新功能。

22910

Node+Puppeteer+可视化配置海报业务尝试

缺点:性能上限不足 因为本身我们海报不仅仅是图片,还会有表格,长图等偏个性化的内容,所以看重个性化扩展和跨端复用能力,对比上述方案最终选择使用puppeteer生成。...在设计可视化中内在核心是:组件编排和表单编排。...*/ id: string; /** 节点名称 */ nodeName: string; /** 组件类型 */ name: ComponentTypes;.../** 组件外层挂载id */ domId: string; /** 组合id */ groupId: string; /** 父id */ parentId:...在可视化系统中,表单主要是通过组件属性生成对应的表单,有些属性我们并不想用户编辑,所以在设计表单时,我们同样使用自定义json schema的方式定义表单并通过插件注册的方式进行注入系统,通过组件名称进行关联组件

1.4K20

Puppeteer 初探

木偶 Puppeteer 更友好的 Headless Chrome Node API 木偶也是有心的 (=・ω・=) Puppeteer是什么?...自动表单提交,UI测试,键盘输入等。 创建一个最新的自动化测试环境。使用最新的的JavaScript和浏览器功能,直接在最新版本的Chrome浏览器中运行测试。...入门 安装Puppeteer npm install puppeteer 或者 yarn add puppeteer Puppeteer至少需要Node v6.4.0,但如果想要使用async / await...}); console.log('Dimensions:', dimensions); // await browser.close(); } 进阶 page.type 获取输入框焦点并输入文字...page.keyboard.press 模拟键盘下某个按键,目前mac上组合键无效为已知bug page.waitFor 页面等待,可以是时间、某个元素、某个函数 page.frames() 获取当前页面所有的

2.6K20

大前端神器安利之 Puppeteer

自动表单提交,UI测试,键盘输入等 创建一个最新的自动化测试环境。使用最新的JavaScript和浏览器功能,直接在最新版本的Chrome中运行测试。 捕获您的网站的时间线跟踪,以帮助诊断性能问题。...Toss Puppeteer,这是在 Github 创建的一个仓库,以承载尝试使用 GoogleChrome Puppeteer 做的各种的折腾,具体如下: ---- 微注: 鉴于个人信息不便于提交,...、地址、描述,并“点击”提交,打完收工。...如果愿意折腾的话,还可以提交至多个不同的目标网站,只需增加设定目标地址,登录方式,以及提交表单的信息即可。当然,对于涉及到登录需要复杂的验证网站,额外需要多做些处理。...---- 前面就有提及,使用 Puppeteer,相当于同时具有 Linux 和 Chrome 双端的操作能力,应用场景可谓非常之多;上面这些只是闲余时间写来玩儿的,真正可以做的,会随着你的想象力扩散增加

2.3K60

使用浏览器自动化框架开发了一款多平台自动发布工具——万媒易发

背景自媒体从业者常常需要在多个社交媒体平台上发布内容,这一过程往往繁琐耗时。为了提高效率,我决定开发一款工具,能够自动化地在不同平台上发布内容,减轻创作者的负担。...技术选择Puppeteer和node.jsPuppeteer是一款由Google维护的浏览器自动化框架,node.js则是一种基于Chrome V8引擎的JavaScript运行环境。...模拟用户操作通过Puppeteer,我可以模拟用户在浏览器中的各种操作,比如点击按钮、输入表单等。...simulateUserAction() { await page.goto('https://example.com'); // 模拟点击按钮 await page.click('#my-button'); // 模拟输入表单...;通过这些步骤,我已经完成了一款基于Puppeteer和node.js的自动发布工具。万媒易发的应用为何选择万媒易发?

27320

如何写微信小程序的自动化脚本?

有一个专有的名称叫RPA,RPA是Robotic Process Automation的简写,译作中文是机器人流程自动化。...它们能够登录应用程序、移动文件和文件夹、复制和粘贴数据、填写表单、从文档中提取结构化和半结构化数据、抓取浏览器等。 ? RPA的实现原理是什么? 那么,RPA是如何实现的呢?...Easy Macro Recorder Easy Macro Recorder 是一个国外类似按键精灵的鼠标键盘自动操作软件,它实现了让键盘与鼠标自动点击与自动输入,可以自动执行电脑上重复繁琐的任务。.../puppeteer 总结 好了,最后总结一下,由于RPA是在PC时代发展起来的,所以目前在移动端的支持也不是很完善。...2021年02月07日 《小程序从0到1:微信全栈工程师一本通》 一本全面系统的介绍小程序开发技术的书籍 ?

10K22

干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用

2)用户在输入框内输入 BDD-UI-Testing ? 3)用户下回车 4)TODO List 显示 BDD-UI-Testing,并且输入框被清空。 ? 那我们的 BDD 测试该如何去实现呢?...Given 浏览器导航到"trip.com" Then 在目的地输入框内输入"上海" Then 点击"搜索" And 验证搜索列表页内包含"上海" 关于 Puppeteer...增加 test-id,保证选择器的可靠性 由于普通的 Class 选择器等并不靠谱,我们需要开发在写代码时加入稳定的 data-test-id 自定义属性作为我们自动化测试埋点,有了这些我们的自动化用例就不会因为...DOM 结构的频繁修改导致选择不到相关元素。...修改为:使用 test-id 作为选择器后,我们也大大增加了可维护性,并把这些作为自动化测试用例“资产”的一部分。 ?

2.4K21

自动化 Web 性能分析之 Puppeteer 爬虫实践

Puppeteer 用途 生成页面的屏幕截图和 PDF。 爬取 SPA 应用,并生成预渲染内容(即 SSR 服务端渲染)。 自动执行表单提交、UI测试、键盘输入等。...双探 Puppeteer:爬取苏宁易购的商品信息 打开电商首页,输入想要的商品名称,点击搜索按钮,跳转至相应的商品列表页,然后一页页浏览,从而找到心仪的商品,这大概就是我们平时网购的样子。...[, options]) 点击要选择的元素 page.waitForNavigation([options]) 等待页面跳转 page.waitFor(selectorOrFunctionOrTimeout...Array.from($(sel).find('li div.res-info')); const item = shopBoxs.map(v => { // 获取每个商品的名称.../ 2); const y = box.y + (box.height / 2); // 鼠标滑动至滑动按钮中心点 await page.mouse.move(x, y); // 下鼠标

3.3K40

我写了一个自动化脚本涨粉,从0阅读到接近100粉丝

网页截图或者生成 PDF 爬取 SPA 或 SSR 网站 UI 自动化测试,模拟表单提交,键盘输入,点击等行为 捕获网站的时间线,帮助诊断性能问题 ...... puppeteer 结构 Puppeteer...Browser 对象 然后通过 Browser 对象创建页面 Page 对象 然后 page.goto() 跳转到指定的页面 调用 page.screenshot() 对页面进行截图 关闭浏览器 是不是觉得好简单...puppeteer.launch(options) options 参数详解 参数名称 参数类型 参数说明 ignoreHTTPSErrors boolean 在请求的过程中是否忽略 Https 报错信息...$('#uniqueId'):获取某个选择器对应的第一个元素 page.$$('div'):获取某个选择器对应的所有元素 page....$(selector) 获取单个元素,底层是调用的是 document.querySelector() , 所以选择器的 selector 格式遵循 css 选择器规范 Page.

42210

Web UI自动化框架-Puppeteer

自动提交表单,进行 UI 测试,键盘输入等。 创建一个时时更新的自动化测试环境。使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。...-记录点击次数,输入事件等 -记录屏幕截图。 -导航时暂停录音。 -监视记录的事件。 -导出到Puppeteer代码。 -调整生成代码的设置。...等待页面跳转 2、等待元素、请求、响应 page.waitForXPath:等待 xPath 对应的元素出现,返回对应的 ElementHandle 实例 page.waitForSelector :等待选择器对应的元素出现...获取某个 xPath 对应的所有元素 page.waitForXPath('//img'):等待某个 xPath 对应的元素出现 page.waitForSelector('#uniqueId'):等待某个选择器对应的元素出现...模拟手指触摸点击 elementHandle.focus():聚焦到某个元素 elementHandle.hover():鼠标 hover 到某个元素上 elementHandle.type('hello'):在输入输入文本

1.9K20
领券