使用 Chromeless 和 Puppeter 比使用 Selenium 有什么好处?

What are the benefits of using Chromeless and Puppeter Over Selenium?

我们正在寻求取代我们的 Selenium 方法来自动收集网络数据,并且已被推荐使用 Puppeteer 或 Chromeless。

我喜欢的一件事是能够在 AWS lambda 上使用 chrome 运行 无头。这个原因被认为是使用 Chromeless 或 Puppeteer 的主要原因。然而,我看到网上的帖子表明同样可以用 Selenium 完成。如果这是真的,那么 Chromeless 和 Puppeteer 比 Selenium 有什么优势?

我们将使用 NodeJS

同时使用了 Selenium 和 Puppeteer,以下是我对它目前被如此强烈推荐的原因的观察:

  • Puppeteer 真的很容易配置和执行。无需设置特定的驱动程序。只需编写您的测试脚本,将 node 指向您的脚本并观察它。一切甚至并行运行!
  • 这是一个零设置框架,因为它与运行最好的 Chromium 版本捆绑在一起。
  • 另一个好处是速度。 Puppeteer 非常快,因为它使用无头 Chrome.
  • 它与其他流行的测试框架很好地集成,例如 jestmocha
  • 使用 Puppeteers API 非常简单。一切都易于编写、易于理解,并且基本上允许使用一行代码自动进行简单的用户交互。
  • 调试自动化脚本真的很容易。只需将 headless 设置为 false 并将 slowMo0 调高到 250,您就可以轻松查看发生了什么并解决您可能遇到的任何问题有。
  • 无论您以前的经验水平如何,都可以轻松上手和使用:在我工作的团队中,每个人(即使是那些没有真正编写自动化测试脚本的人experience) 发现与 Puppeteer 一起工作是一种非常愉快和轻松的体验。每个人都可以在几分钟内掌握基础研究并快速获得脚本 运行,没有任何麻烦或压力。

应该注意的是,Selenium 确实 完成了 Puppeteer 所做的一切(反之亦然),但这不是 Puppeteer 的重点。 Puppeteer 允许团队使用易于使用的 API 非常快速地构建大型自动化脚本库并获得测试 运行 now 而不是必须处理构建可跨浏览器和/或跨设备工作的超稳健测试框架。

如果您确实必须进行跨浏览器测试,那么 Selenium 或 InternJS(我个人最喜欢的)仍然是您的选择。

Puppeteer 仅支持在 Chrome 上执行测试,但归根结底,最好进行大量测试 运行(即使只是在 Chrome 上执行) ) 而不是 none.