웹 자동화는 Selenium 대신 Playwright를 쓰자
(new.pythonforengineers.com)- 웹 자동화/테스트는 Selenium이 사실상 표준이었음
- 시작하기 쉽고, 거의 모든 프로그래밍 언어를 지원
- 충분하지만, 딱 거기까지임
- 최신 자바스크립트 프레임워크 사이트에선 잘 동작안함(Angular,React,..)
→ 동작 안 한다는게 아님. 잘 되지 않는다는 것 - 문서화가 잘 되어 있다고 하지만, 실제로 조금만 메인 경로에서 벗어난 일을 하려고 하면 예제를 찾기 어려움
- Chai, Mocha, Cypress 같은걸 써보려고 했지만, 완전히 설정히 다르고 파이썬 개발자에게는 쉽지 않음
- 수십가지의 Selenium 대체제가 만들어졌지만, 대부분 몇년만에 사라짐
Enter Playwright
- 훌륭하고, 게다가 마이크로소프트가 만들고 있다는게 중요. 오래 지원될 것
- Playwright의 킬러 피쳐는 "테스트 자동 생성"
- 브라우저를 열고 단계별로 실행하면 그걸 녹화해서 파이썬 스크립트로 만들어줌
- Selenium에서 XPath같은 걸 찾는 수고를 덜어줌
- 이렇게 저장된 단계는 거의 수정없이 바로 수행 가능
- 또 다른 장점은 실행과정을 비디오로 저장해서 볼수 있다는 것
- 유일한 단점은 아직 새롭다는 것. 버그도 많고 문서가 좋지 않음
- 하지만 전반적으로 봐서, 모든 새 프로젝트에는 난 Playwright를 선택할 듯
puppeteer를 쓰다가 완전히 playwright으로 온보딩에 성공한 입장에서 playwright의 코드젠 기능만으로도 옮길 가치가 크다고 봅니다
기존 프로젝트를 옮기는 것부터 생각할 게 아니라, 먼저 신규 프로젝트를 시작할 때 Playwright를 새로 도입하는 걸 적극 검토하면 어떨까요? 아니면 토이 프로젝트를 시작해보는 것도 좋을 것 같습니다.
Playwright 가 언어간 (JS, Python) API 가 일관성 있고 좀 더 깔끔한거 같아요.
특히 Python의 경우 async 지원이 아주 잘 되고요 ㅎ