node.js - 使用 Chromeless 和 Puppeter Over Selenium 有什么好处?
问题描述
我们正在寻求替换我们的 Selenium 方法来自动收集网络数据,并已被推荐使用 Puppeteer 或 Chromeless。
我喜欢的一件事是在 AWS lambda 上运行 chrome 时能够无头运行。这个原因被认为是选择 Chromeless 或 Puppeteer 的主要原因。但是,我在网上看到帖子表明 Selenium 也可以做到这一点。如果这是真的,那么 Chromeless 和 Puppeteer 比 Selenium 有什么优势?
我们将使用 NodeJS
解决方案
在使用了 Selenium 和 Puppeteer 之后,这些是我对为什么目前如此高度推荐它的观察:
- Puppeteer 真的很容易配置和执行。无需设置特定的驱动程序。只需编写您的测试脚本,指向
node
您的脚本并观察它。一切甚至并行运行! - 这是一个零设置框架,因为它与运行最佳的 Chromium 版本捆绑在一起。
- 另一个好处是速度。Puppeteer 非常快,因为它使用无头 Chrome。
- 它与其他流行的测试框架(例如
jest
和mocha
. - 使用 Puppeteers API 非常简单。一切都很容易编写,易于理解,并且基本上允许使用单行代码自动化简单的用户交互。
- 调试自动化脚本真的很容易。比如说,只需设置
headless
到false
和slowMo
从到开始,您就可以轻松查看正在发生的事情并解决您可能遇到的任何问题。0
250
- 无论您以前的经验水平如何,它都很容易上手和使用:在我正在工作的团队中,每个人(即使是那些没有真正自动化测试脚本编写经验的人)都发现与 Puppeteer 一起工作是一种非常好的和轻松的体验。每个人都可以在几分钟的基础研究中掌握它,并让脚本快速运行,没有任何麻烦或压力。
应该注意的是,Selenium确实做了 Puppeteer 所做的一切(反之亦然),但这不是 Puppeteer 的重点。Puppeteer 允许团队使用易于使用的 API 非常快速地构建大型自动化脚本库并立即运行测试,而不必处理构建跨浏览器和/或跨设备工作的超健壮测试框架。
如果您真的必须进行跨浏览器测试,那么 Selenium 或 InternJS(我个人最喜欢的)仍然是您的选择。
Puppeteer 仅支持在 Chrome 上执行测试,但归根结底,运行大量测试(即使它只是在 Chrome 上)总比不运行要好得多。
推荐阅读
- javascript - chrome 扩展内容脚本可以使用模块加载器吗?
- java - 错误:变量 sblst 已在方法 generate(int) 中定义,但 ForLoop 没有错误
- ssl - 用于多个 Internet 站点的 Lotus/IBM Domino 服务器 SSL 配置
- java - 在源代码中为 java 代码行加下划线
- java - JVM常量池索引值必须大于0才有效,这是为什么呢?
- java - 在字符串中查找句子出现
- html - 材料设计图标。无法从辅助 CSS 文件应用自定义类。为什么?
- c# - 无法导入此数据库 - 不断出现错误
- python - shutil.copy 隐藏文件
- php - 如何访问while数组外的php var,匹配ID