踏入网站测试与爬虫领域的开发者不陌生的便是 Puppeteer。这个利用 Chrome 浏览器 API 实现 Headless 操作的 Node.js 库在 Web 自动化测试、爬虫等领域有着广泛的应用。

但是在使用 Puppeteer 的时候,我们需要特别注意一些踩坑的点,这些反模式会导致代码的不可维护性,降低开发的效率以及增加调试难度。在这篇文章中,我们将讨论更多 Puppeteer 的反模式,帮助你避免这些坑。

要避免的第一个反模式是忽视错误。当你使用 Puppeteer 的时候,错误信息是非常重要的。某些操作会返回 promise,如果这个 promise 遇到错误,你得到的只是一个 undefined。为了避免这种情况,我们应该始终使用 await 和 try/catch 语句来处理这些 promise。

另一个要避免的反模式是使用默认参数。我们应该根据实际情况,为每个操作配置适当的参数,而不是使用默认值。使用默认参数往往会导致代码的可维护性降低,因为默认参数可能会发生变化,而这种变化很难追踪。所以请根据实际情况为每个 API 都提供明确的参数。

第三个要避免的反模式是顺序执行步骤。在 Puppeteer 中,我们应该尽可能使用异步函数,而不是像传统的测试流程一样依次执行每个步骤。如果你依赖顺序执行的话,你的测试将非常脆弱,因为任何单个步骤的失败都会导致所有后续步骤的失败。相反,我们应该并行运行测试步骤,这样就不会有一个失败的步骤影响到其他的步骤。

第四个要避免的反模式是遮盖数据。使用 Puppeteer 是为了获取真实的 Web 页面,所以不要在测试中遮盖数据。我们应该尽可能地使用真实的数据,并在测试前清除数据,以确保测试的准确性。

最后一个要避免的反模式是测试失败后不知所措。当测试失败时,我们应该确保错误信息足够详细,以便我们可以快速定位问题。我们应该始终记录失败的测试和失败的原因,并在错误发生时立即停止测试。这样可以节省我们的时间和精力,并帮助我们更快地完成调试。

总之,当你使用 Puppeteer 的时候,一定要避免这些反模式。这样可以提高你的代码的可维护性和测试的准确性,同时也可以节省你的时间和精力。所以,请记住这些反模式,并根据实际情况合理运用 Puppeteer,在 Web 自动化测试、爬虫等领域做出更为出色的成果。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/