首页

  • Promise 概念的理解

    《Puppteer 实现 web 自动测试》 一文里,可以看出来如果 Puppteer 脚本用 async/await 和 promise的一些写法,会让脚本非常易懂,而且符合我们人工操作浏览器的习惯。所以为了写好 Puppteer 脚本,需要先对 async/await 的概念有所了解。

    发表时间 ·

  • Puppeteer 获取和修改 元素节点的属性

    用 Puppteer 获取 HTML DOM 的元素节点后,如何获得节点的其他属性,也就是节点的Attribute?比如链接指向、样式、class 名称、id 名称、等等关键信息。本文探讨两种可行的方法。

    发表时间 ·

  • Puppeteer 处理文件上传

    《Puppeteer 处理文件下载》 一文后,我们看看如何处理文件上传问题。好在 Puppeteer 直接提供了上传的方法,我们只要定位到对应的上传元素后,就可以启动上传过程,非常的方便。

    发表时间 ·

  • Puppeteer 的远程调试方法

    Puppteer 在 headless 模式下运行时,很多时候难以知道出错原因,这时候需要一个远程观察窗口,这时可以用 Chrome/Chromium 的远程 debug 功能。

    发表时间 ·

  • Puppeteer 处理文件下载

    本文要解决的是如何用 Puppeteer 处理下载文件,无论是点击链接产生的文件下载,或者是点击按钮触发的文件下载。以及如何对文件进行后续处理。

    发表时间 ·

  • Puppeteer 等待页面更新

    在页面发生跳转或者更换时,需要有一些事件让 Puppeteer 等待,不然就会提早返回错误或者无法预期的事情发生。本文列举一些这种场景和如何等待页面的变化。

    发表时间 ·

  • 用 Puppeteer 处理新tab页

    使用 puppeteer 打开页面后,有些链接或者按钮会主动打开新 tab 页(target=_blank), 那么如何控制浏览器打开新tab,并且获取新tab页面内容,并且最后返回原始页面?本文列出了一个可行的方法。

    发表时间 ·

  • 用 Puppeteer 获取页面元素的样式

    使用 puppeteer 寻找到某个元素后,往往希望检查此元素的某种样式,对应于 chrome 开发者工具里看到的是该元素的 computed style. 使用 puppeteer 可以比较方便的得到元素的样式,本文列出了一个可行的方法。

    发表时间 ·

  • 用 Puppeteer 截图

    按照 《Puppteer 配置浏览器属性》一文配置浏览器后,启动浏览器并打开网页,第一件可以自动完成的事情就是截图。 本文详细讨论截图的一些细节操作。

    发表时间 ·

  • Puppeteer 配置浏览器属性

    《Puppteer 实现 web 自动测试》 一文里,我们已经初步的列出了 puppeteer 脚本的用法,这里继续深入每一步骤的细节配置,更为方便的编写和调试代码。

    发表时间 ·

  • Puppeteer 实现 web 自动测试

    Puppteer 是 Google 推出的自动化工具,包含 Chromium 用于模拟用户侧操作,本文介绍如何 配合 Mocha 和 Chai 使用 Puppteer 开展自动化测试

    发表时间 ·

  • 用 Puppeteer 获取元素的内部文字

    Puppeteer 可以查找特定的元素,进一步可以获取元素内部的文字。那么有没有办法获得多个同类型元素的内部文字?答案是有的。本文讨论下具体方法。

    发表时间 ·

  • Puppeteer 获取 http 请求的响应

    页面收到的 HTTP 响应,用 Chrome 的开发者工具 DevTool 很容易能看到,但是如何以运行程序的方法,从 Chrome 中取得呢?本文讨论一种可行的方法。

    发表时间 ·

  • Puppeteer 获取 WebSocket 响应

    正如 Puppeteer 获取 http 请求的响应 一文里提到的方法,除了获取 HTTP 响应以外,还能获取 WebSocket 响应。因为有些页面通过 WebSocket 实现异步传输,仅仅从HTTP通道上获取响应是不够的,如何使用 Puppeteer 得到 WebSocket 响应内容,本文讨论一种方法。

    发表时间 ·

  • Puppeteer 异步编程中实现 sleep

    虽然 Promise,async/await 的异步编程并不需要 sleep 这种阻塞式的等待,但是有时候当事件发生在程序外部时,可能会用到 sleep,本文介绍一种简单的 sleep 实现方法。

    发表时间 ·