Selenium Webdriver là gì?
Selenium Webdriver là một bộ sưu tập mã nguồn mở gồm các API được sử dụng để kiểm tra các ứng dụng web. Công cụ Selenium Webdriver được sử dụng để tự động kiểm tra ứng dụng web nhằm xác minh xem nó có hoạt động như mong đợi hay không. Nó chủ yếu hỗ trợ các trình duyệt như Firefox, Chrome, Safari và Internet Explorer. Nó cũng cho phép bạn thực hiện thử nghiệm trên nhiều trình duyệt.
WebDriver cũng cho phép bạn sử dụng ngôn ngữ lập trình để tạo các tập lệnh thử nghiệm của mình (không thể thực hiện được trong Selenium IDE).
Bây giờ bạn có thể sử dụng các phép toán có điều kiện như if-then-else hoặc switch-case. Bạn cũng có thể thực hiện lặp như do-while.
Các ngôn ngữ lập trình sau được hỗ trợ bởi WebDriver
- Java
- .Mạng lưới
- PHP
- Python
- Perl
- Ruby
Bạn không cần phải biết tất cả chúng. Bạn chỉ cần có kiến thức trong một. Tuy nhiên, trong hướng dẫn này, chúng tôi sẽ sử dụng Java với Eclipse làm IDE của chúng tôi.
Sự khác biệt giữa Selenium RC và Webdriver
Trước khi WebDriver ra đời vào năm 2006, có một công cụ tự động hóa khác được gọi là Selenium Remote Control. Cả WebDriver và Selenium RC đều có các tính năng sau:
- Cả hai đều cho phép bạn sử dụng một ngôn ngữ lập trình để thiết kế các kịch bản thử nghiệm của mình.
- Cả hai đều cho phép bạn chạy thử nghiệm của mình trên các trình duyệt khác nhau.
Vậy chúng khác nhau như thế nào? Hãy để chúng tôi thảo luận về câu trả lời.
1. Kiến trúc
Kiến trúc của WebDriver đơn giản hơn so với Selenium RC .
- Nó kiểm soát trình duyệt từ cấp hệ điều hành
- Tất cả những gì bạn cần là IDE của ngôn ngữ lập trình (chứa các lệnh Selenium của bạn) và một trình duyệt.
Kiến trúc của Selenium RC phức tạp hơn nhiều.
- Trước tiên, bạn cần khởi chạy một ứng dụng riêng có tên là Selenium Remote Control (RC) Server trước khi có thể bắt đầu thử nghiệm
- Máy chủ Selenium RC hoạt động như một "người trung gian" giữa các lệnh Selenium và trình duyệt của bạn
- Khi bạn bắt đầu thử nghiệm, Selenium RC Server "đưa" một chương trình Javascript có tên là Selenium Core vào trình duyệt.
- Sau khi được đưa vào, Selenium Core sẽ bắt đầu nhận các hướng dẫn do Máy chủ RC chuyển tiếp từ chương trình thử nghiệm của bạn.
- Khi nhận được các hướng dẫn, Selenium Core sẽ thực thi chúng dưới dạng các lệnh Javascript.
- Trình duyệt sẽ tuân theo các hướng dẫn của Selenium Core và sẽ chuyển tiếp phản hồi của nó tới RC Server.
- RC Server sẽ nhận phản hồi của trình duyệt sau đó hiển thị kết quả cho bạn.
- RC Server sẽ tìm nạp hướng dẫn tiếp theo từ tập lệnh thử nghiệm của bạn để lặp lại toàn bộ chu kỳ.
2. Tốc độ
WebDriver nhanh hơn Selenium RC vì nó nói trực tiếp với trình duyệt sử dụng engine của chính trình duyệt để điều khiển nó.
Selenium RC chậm hơn vì nó sử dụng một chương trình Javascript được gọi là Selenium Core. Selenium Core này là thứ trực tiếp điều khiển trình duyệt, không phải bạn.
3. Tương tác trong đời thực
WebDriver tương tác với các phần tử của trang theo cách thực tế hơn. Ví dụ: nếu bạn có một hộp văn bản bị vô hiệu hóa trên trang mà bạn đang kiểm tra, WebDriver thực sự không thể nhập bất kỳ giá trị nào vào đó giống như cách một người thực không thể.
Selenium Core, cũng giống như các mã JavaScript khác, có thể truy cập các phần tử bị vô hiệu hóa. Trước đây, những người kiểm tra Selenium phàn nàn rằng Selenium Core có thể nhập các giá trị vào một hộp văn bản bị vô hiệu hóa trong các thử nghiệm của họ. Sự khác biệt trong API
4. API

API của Selenium RC hoàn thiện hơn nhưng chứa các lệnh dư thừa và thường gây nhầm lẫn . Ví dụ, hầu hết thời gian, người kiểm tra bối rối không biết nên sử dụng type hay typeKeys; hoặc sử dụng click, mouseDown, hay mouseDownAt. Tệ hơn nữa, các trình duyệt khác nhau cũng diễn giải từng lệnh này theo những cách khác nhau!
API của WebDriver đơn giản hơn so với Selenium RC . Nó không chứa các lệnh thừa và khó hiểu.
5. Hỗ trợ trình duyệt
WebDriver có thể hỗ trợ trình duyệt HtmlUnit không đầu
HtmlUnit được gọi là "không có đầu" bởi vì nó là một trình duyệt vô hình - nó không có GUI.
Đây là một trình duyệt rất nhanh vì không tốn thời gian chờ đợi tải các phần tử của trang. Điều này tăng tốc các chu kỳ thực thi thử nghiệm của bạn.
Vì nó là vô hình đối với người dùng, nó chỉ có thể được kiểm soát thông qua các phương tiện tự động.
Selenium RC không thể hỗ trợ trình duyệt HtmlUnit không đầu. Nó cần một trình duyệt thực, hiển thị để hoạt động.
Hạn chế của WebDriver
WebDriver không thể sẵn sàng hỗ trợ các trình duyệt mới
Hãy nhớ rằng WebDriver hoạt động ở cấp hệ điều hành. Ngoài ra, hãy nhớ rằng các trình duyệt khác nhau giao tiếp với Hệ điều hành theo những cách khác nhau. Nếu một trình duyệt mới xuất hiện, nó có thể có một quy trình giao tiếp với hệ điều hành khác so với các trình duyệt khác. Vì vậy, bạn phải cho nhóm WebDriver một khoảng thời gian để tìm ra quy trình mới đó trước khi họ có thể triển khai nó trên bản phát hành WebDriver tiếp theo.
Tuy nhiên, nhóm các nhà phát triển của WebDriver quyết định xem họ có nên hỗ trợ trình duyệt mới hay không.
Selenium RC có bộ tạo kết quả thử nghiệm tích hợp
Selenium RC tự động tạo tệp HTML kết quả kiểm tra . Định dạng của báo cáo do RC tự thiết lập trước. Hãy xem một ví dụ về báo cáo này dưới đây.
WebDriver không có lệnh tích hợp tự động tạo Tệp Kết quả Kiểm tra . Bạn sẽ phải dựa vào cửa sổ đầu ra của IDE hoặc tự thiết kế báo cáo bằng cách sử dụng các khả năng của ngôn ngữ lập trình của bạn và lưu trữ nó dưới dạng văn bản, HTML, v.v.
Tóm lược
- WebDriver là một công cụ để kiểm tra các ứng dụng web trên các trình duyệt khác nhau bằng các ngôn ngữ lập trình khác nhau.
- Giờ đây, bạn có thể thực hiện các bài kiểm tra mạnh mẽ vì WebDriver cho phép bạn sử dụng ngôn ngữ lập trình mà bạn chọn để thiết kế các bài kiểm tra của mình.
- WebDriver nhanh hơn Selenium RC vì kiến trúc đơn giản hơn.
- WebDriver trực tiếp nói chuyện với trình duyệt trong khi Selenium RC cần sự trợ giúp của Máy chủ RC để làm như vậy.
- API của WebDriver ngắn gọn hơn của Selenium RC.
- WebDriver có thể hỗ trợ HtmlUnit trong khi Selenium RC không thể.
- Hạn chế duy nhất của WebDriver là:
- Nó không thể hỗ trợ các trình duyệt mới một cách dễ dàng , nhưng Selenium RC thì có thể.
- Nó không có lệnh cài sẵn để tự động tạo kết quả kiểm tra.