🚗 WebDriver là gì?
Chuẩn chung để ra lệnh cho trình duyệt.
1
Hiểu nó là gì
WebDriver là giao thức quy định cách gửi lệnh mở trang, click hay gõ chữ tới trình duyệt, nhờ đó code test không dính chặt vào một trình duyệt cụ thể.
Nói theo đời thường:
Như quy ước vô lăng và chân ga giống nhau ở mọi hãng xe: biết lái một chiếc thì lái được chiếc khác.
Như quy ước vô lăng và chân ga giống nhau ở mọi hãng xe: biết lái một chiếc thì lái được chiếc khác.
⚠ Chỗ ẩn dụ này hỏng
Vô lăng xe nào cũng như nhau, nhưng các trình duyệt lại hiểu cùng một lệnh theo cách hơi khác nhau.
Cùng lệnh “click”, Chrome và Firefox có thể xử lý khác nhau khi phần tử bị che một nửa hoặc đang trong animation. Chuẩn chung giúp bạn viết một lần chạy nhiều nơi, nhưng không xoá được khác biệt giữa các trình duyệt — đó là lý do test cross-browser vẫn cần chạy thật.
2
Code trông thế nào
# WebDriver thực chất là các lời gọi HTTP POST /session/{id}/element # tìm phần tử POST /session/{id}/element/{e}/click # bấm vào nó GET /session/{id}/element/{e}/text # đọc chữ trong nó
Mọi thư viện Selenium ở mọi ngôn ngữ, bên dưới đều chỉ đang gửi mấy request này.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Muốn hiểu vì sao Selenium và Appium làm được điều chúng làm
- Đang gỡ lỗi ở tầng sâu, log Selenium khó hiểu
✗ Đừng dùng khi
- Mới bắt đầu — cứ dùng thư viện, chưa cần biết bên dưới
Chưa cần biết: BiDi protocol, CDP, tự viết client WebDriver.
Để dành tới Mốc 3 — Tự sửa được khi nó hỏng: Test đỏ trên CI mà xanh ở máy bạn, và bạn biết bắt đầu tìm từ đâu.
Dấu hiệu bạn đã cần học nó: Khi bạn cần bắt lỗi console của trình duyệt trong lúc test chạy, và thư viện không cho sẵn.
4
Đi đâu tiếp
- SeleniumCách dùng WebDriver phổ biến nhất.
- AppiumDùng lại WebDriver cho app điện thoại.
- API TestingWebDriver chính là một API — hiểu API testing thì hiểu luôn cơ chế này.