Playwright 初探

基础笔记

主要参考 https://blog.logrocket.com/playwright-vs-puppeteer/ ,下述为笔记

自从 Chrome 支持了 headless browser,which is 一些个人开发者曾支持的、复杂琐碎的技术(如 PhantomJS、Selenium),Web 自动化框架开始 剧烈地 更新迭代。

关于 Puppeteer:Chrome 官方支持的(基于 DevTools Protocol)框架,比起 PhantomJS (基于 WebDriver 协议)更稳定。

关于 Playwright:开发团队从 Puppeteer 过来。相较于 Puppeteer:

  1. API 相似(意味着使用上没有什么成本)
  2. 一些 API 更 Ergonomic(意味着语义化更好);在写法上,可以很方便地模拟多种不同的设备
  3. 能兼容 Firefox、Webkit,但兼容程度较低(也许以后能和 Puppteer 团队“共建”呢……)

关于 技术选型:无论选 Playwright / Puppeteer,还是 Cypress / PhantomJS / Selenium (有很多 workaround,但同时也很 flaky),都要考虑:

  1. 跨浏览器支持(按这篇文章来说,目前是 Playwright 做得最好,但谁敢保证 Puppeteer 和 Cypress 会一直落后呢?)
  2. 长期支持(我觉得这是废话……)
  3. 具体业务具体分析(废话……)

业务选择

如果是一个新项目,建议使用 Playwright,与其他框架的详细对比可阅读下方 其他参考 一节中的 2. 文章。

其他参考

  1. The reckless, infinite scope of web browsers - 一篇对现代浏览器生态的见解
  2. Playwright VS Selenium VS Puppeteer VS Cypress - 一个较为全面的、多维度的中文博客,对比了流行 Web 自动化框架
  3. Puppeteer, Selenium, Playwright, Cypress – how to choose? - 上述中文博客开头引用的文章