🧪 Selenium là gì?
Bộ công cụ lâu đời điều khiển trình duyệt.
1
Hiểu nó là gì
Selenium cho phép viết code bằng Java, Python, C# hay JavaScript để tự mở trình duyệt, thao tác trang web và kiểm tra kết quả.
Nói theo đời thường:
Như bộ điều khiển cắm được vào nhiều đời tivi: cũ nhưng quá phổ biến, hầu như chỗ nào cũng dùng được.
Như bộ điều khiển cắm được vào nhiều đời tivi: cũ nhưng quá phổ biến, hầu như chỗ nào cũng dùng được.
⚠ Chỗ ẩn dụ này hỏng
Điều khiển đa năng thì tiện, nhưng Selenium không tự chờ giúp bạn.
Nó bấm ngay khi được lệnh, kể cả lúc trang chưa vẽ xong — và đây là nguồn gốc của phần lớn flaky test trong các dự án Selenium. Playwright và Cypress sinh sau nên có sẵn cơ chế tự chờ, đó là khác biệt lớn nhất chứ không phải cú pháp.
2
Code trông thế nào
// Java + Selenium driver.get("https://vd.com/dang-nhap"); driver.findElement(By.id("email")).sendKeys("na@vd.com"); driver.findElement(By.id("submit")).click(); // Gần như luôn phải tự thêm chờ new WebDriverWait(driver, Duration.ofSeconds(10)) .until(ExpectedConditions.visibilityOfElementLocated(By.id("loi")));
Bốn dòng việc chính, một dòng chờ đợi — tỉ lệ này khá tiêu biểu cho Selenium.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Công ty đã có sẵn bộ test Selenium lớn
- Cần ngôn ngữ Java hoặc C# (Playwright mạnh nhất ở JS/Python)
- Cần chạy trên trình duyệt hoặc thiết bị cũ mà công cụ mới không đỡ
✗ Đừng dùng khi
- Dự án mới hoàn toàn — cân nhắc Playwright trước
- Đội chưa quen xử lý chờ đợi thủ công
Chưa cần biết: Selenium Grid, chạy phân tán nhiều máy, tích hợp cloud device farm.
Để 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 chạy cùng lúc trên 5 trình duyệt và máy cá nhân không kham nổi.
4
Đi đâu tiếp
- WebDriverGiao thức nằm dưới Selenium, hiểu nó thì hiểu vì sao Selenium làm được vậy.
- WaitKỹ năng bắt buộc phải giỏi nếu dùng Selenium.
- PlaywrightLựa chọn thay thế phổ biến cho dự án mới.
🧪 Thử 2 phút, không cần cài gì
Chưa cần cài Selenium: F12 → Console, gõdocument.getElementById('email') trên một trang đăng nhập bất kỳ. Đó chính là thứ findElement(By.id(...)) làm ở bên trong.⚖ Hay bị nhầm với thuật ngữ khác
- Selenium, Playwright và Cypress — chọn cái nào?Playwright · Cypress