当前位置: 首页 > 后端技术 > Node.js

Rize-一个Node.js库,可以让你轻松优雅地使用puppeteer

时间:2023-04-03 15:53:09 Node.js

目前puppeteer已经成为一个非常流行的Node.js库,广泛用于爬虫或UI测试。我也喜欢木偶图书馆。然而,几乎所有puppeteer的API都是异步的,并且返回一个Promise。这使得整个代码有点冗长,这里是官方的例子:awaitpage.goto('http://example.com')awaitpage.screenshot({path:'example.png'})awaitbrowser.close()})()可以看到,一堆await关键字使代码不那么优雅。为了使用async/await,您必须将代码放入立即调用函数(IIFE)中。为此,我受到LaravelDusk的启发,编写了Rize库。上面的例子,用Rize重写,看起来像这样:constRize=require('rize')').end()代码要简单得多。此外,链式API调用也让代码更加优雅。除了提供基本操作(如页面导航、DOM操作和表单交互)之外,Rize库还提供了一些断言方法。为什么?因为我们经常使用puppeteer进行UI测试。Rize提供了一系列断言,让UI测试简单方便,E2E测试也没问题。例如,您可以断言当前页面的URL:constrize=newRize()rize.assertUrlIs('http://example.com')或者断言页面上是否存在指定的文本:constrize=newRize()rize.assertSee('Sometext')也可以对DOM进行断言:constrize=newRize()rize.assertClassHas('div','my-class')上面的函数可以断言指定类是否存在于指定的元素名称。更多API可以参考Rize的文档(链接如下)。Rize库GitHub仓库:https://github.com/g-plane/rize(欢迎star)Rize库文档教程:https://rize.js.org/Rize库所有API参考:https://rize.js.org/api/classes/_index_.rize.html