Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

So sánh WebDriver click() và JavaScript click() trong Selenium

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ựcMô phỏng user thật (mouse event)Gọi trực tiếp DOM event
Kiểm tra visibilityCó (element phải hiển thị, enabled)Không (click được ẩn, disabled)
Scroll vào viewTự độngCần scroll thủ công
Xử lý overlayChặn bởi overlayBỏ qua overlay
Trigger event listenersCó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).