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:
- API 相似(意味着使用上没有什么成本)
- 一些 API 更 Ergonomic(意味着语义化更好);在写法上,可以很方便地模拟多种不同的设备
- 能兼容 Firefox、Webkit,但兼容程度较低(也许以后能和 Puppteer 团队“共建”呢……)
关于 技术选型:无论选 Playwright / Puppeteer,还是 Cypress / PhantomJS / Selenium (有很多 workaround,但同时也很 flaky),都要考虑:
- 跨浏览器支持(按这篇文章来说,目前是 Playwright 做得最好,但谁敢保证 Puppeteer 和 Cypress 会一直落后呢?)
- 长期支持(我觉得这是废话……)
- 具体业务具体分析(废话……)
业务选择
如果是一个新项目,建议使用 Playwright,与其他框架的详细对比可阅读下方 其他参考 一节中的 2. 文章。
其他参考
- The reckless, infinite scope of web browsers - 一篇对现代浏览器生态的见解
- Playwright VS Selenium VS Puppeteer VS Cypress - 一个较为全面的、多维度的中文博客,对比了流行 Web 自动化框架
- Puppeteer, Selenium, Playwright, Cypress – how to choose? - 上述中文博客开头引用的文章