Selenium WebDriver – Tổng quan

WebDriver là một công cụ để kiểm thử tự động các ứng dụng web. Nó thường được gọi là Selenium 2.0. WebDriver sử dụng một framework cơ bản khác biệt trong khi Selenium RC sử dụng Javacript Selenium-Core nhúng vào trong trình duyệt. WebDriver tương tác trực tiếp với các trình duyệt và không cần bất kỳ trung gian nào, không giống như Selenium RC phụ thuộc vào một máy chủ. WebDriver được sử dụng trong ngữ cảnh sau:

  • Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình duyệt mà không được hỗ trợ tốt bởi Selenium RC (Selenium 1.0).
  • Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và alert.
  • Điều hướng trang phức hợp.
  • Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)
  • AJAX-based UI elements.

Cấu Trúc

 

WebDriver được giải thích với một sơ đồ kiến trúc đơn giản như hình dưới đây.

webdriver

Selenium RC vs WebDriver

 

Selenium RC Selenium WebDriver
Cấu trúc của Selenium RC phức tạp, máy chủ cần được bật và chạy trước khi bắt đầu một thử nghiệm. Cấu trúc của WebDriver đơn giản hơn Selenium RC, nó điều khiển các trình duyệt từ cấp hệ điều hành.
Máy chủ Selenium đóng vai trò như môi trường trung gian giữa các trình duyệt và các lệnh Selenium. WebDriver tương tác trực tiếp với các trình duyệt và sử dụng browser’s engine để điều khiển trình duyệt.
Kịch bản Selenium RC thực thi chậm hơn, vì nó sử dụng một Javascript để tương tác với RC. WebDriver thì nhanh hơn, vì nó tương tác trực tiếp với các trình duyệt.
Selenium RC không hỗ trợ headless execution vì nó cần làm việc với một trình duyệt thực sự. WebDriver có hỗ trợ headless execution.
API nhỏ và đơn giản. API lớn hơn một chút và phức tạp hơn so với RC.
ít hướng đối tượng. hướng đối tượng hoàn toàn.
Không thể test các ứng dụng di động. Có thể test các ứng dụng iPhone/Android.

 

Các Command được sử dụng thường xuyên

 

Command Description
driver.get(“URL”) Điều hướng tới một ứng dụng.
element.sendKeys(“inputtext”) Nhập một số văn bản vào một ô nhập liệu.
element.clear() Xóa tất cả nội dụng của một ô nhập liệu.
select.deselectAll() Bỏ chọn tất cả các tùy chọn của SELECT đầu tiên trên trang.
select.selectByVisibleText(“some text”) Chọn OPTION với đầu vào được xác định bởi người dùng.
driver.switchTo().window(“windowName”) Di chuyển trọng tâm từ tới một cửa sổ khác.
driver.switchTo().frame(“frameName”) Swing from frame to frame.
driver.switchTo().alert() Helps in handling alerts.
driver.navigate().to(“URL”) Điều hướng đến một URL.
driver.navigate().forward() Điều hướng tới trang trước (forward).
driver.navigate().back() Điều hướng tới trang sau (back).
driver.close() Đóng trình duyệt hiện tại có liên kết với trình điều khiển.
driver.quit() Thoát trình điều khiển và đóng tất cả các sử sổ liên kết tới trình điều khiển.
driver.refresh() Làm mới trang hiện tại.

Bình luận