Mô tả
So sánh hai cách click element trong Selenium WebDriver: dùng method click() gốc của WebElement và dùng JavaScript Executor.
Cách 1: WebDriver click()
driver.findElement(By.linkText("Write for us")).click();
Hoặc partial link text:
driver.findElement(By.partialLinkText("Write")).click();
Cách 2: JavaScript Executor click()
WebElement element = driver.findElement(By.linkText("Write for us"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", element);
So sánh
| Tiêu chí | WebDriver click() | JS click() |
|---|---|---|
| Tương tác thực | Mô phỏng user thật (mouse event) | Gọi trực tiếp DOM event |
| Kiểm tra visibility | Có (element phải hiển thị, enabled) | Không (click được ẩn, disabled) |
| Scroll vào view | Tự động | Cần scroll thủ công |
| Xử lý overlay | Chặn bởi overlay | Bỏ qua overlay |
| Trigger event listeners | Có | Có |
Khi nào dùng JS click
- Element bị che bởi overlay/popup
- Element ẩn (display:none) nhưng cần trigger
- WebDriver click fail do timing/animation
- Click trên SVG, canvas, shadow DOM
Best practice
Ưu tiên WebDriver click() cho test thực tế. Dùng JS click() chỉ khi bắt buộc (fallback).