Selenium Webdriver là gì? Cách thức hoạt động

Đinh Thao

Nhiều công cụ kiểm thử xuất hiện nhằm hỗ trợ tối đa cho Tester trong quá trình kiểm thử phần mềm. Một trong số đó phải kể đến Selenium Webdriver với nhiều ưu thế nổi trội. Vậy Selenium Webdriver là gì? Cách thức hoạt động và ưu, nhược điểm của công cụ này ra sao? Hãy cùng Testerpro tìm hiểu câu trả lời trong bài viết dưới đây nhé!

Selenium WebDriver

Selenium WebDriver là gì?

Selenium WebDriver hay còn gọi là WebDriver là một automation framework của web cho phép bạn thực hiện các kiểm thử trên nhiều trình duyệt: Firefox, Chrome, Internet Explorer,… Nó là một thành phần không thể thiếu trong bộ kiểm thử tự động Selenium.

Đây là một bộ công cụ kiểm thử tự động nổi tiếng với mã nguồn mở và có khả năng hỗ trợ nhiều ngôn ngữ lập trình: Java, .Net, PHP, Python, Perl, Ruby,… WebDriver có công cụ hỗ trợ bạn trong việc coding để tạo ra test scripts. Bạn có thể sử dụng các phương thức điều kiện: if-then-other, switch-case, vòng lặp do-while,…

Được tạo dựng trên nền tảng cơ bản của một Client độc lập được tạo cho mỗi trình duyệt web và không yêu cầu JavaScript nặng. Nó là một framework hướng đối tượng hoàn toàn, hoạt động trên tầng hệ điều hành.

Selenium WebDriver

Tại sao nên sử dụng Selenium WebDriver?

  • Sử dụng hoàn toàn miễn phí
  • WebDriver có kiến trúc đơn giản: điều khiển trình duyệt từ hệ điều hành và bạn cần IDE cùng trình duyệt là xong.
  • Hỗ trợ nhiều ngôn ngữ lập trình cho bạn viết kịch bản kiểm thử. Bạn có thể sử dụng các điều kiện if else và vòng lặp để tăng tính chính xác cho kịch bản.
  • So với các bộ công cụ khác của bộ Selenium thì đây là công cụ có tốc độ nhanh nhất trong số tất cả. Bởi nó có sự tương tác trực tiếp từ hệ điều hành đến trình duyệt.

Selenium WebDriver

 

Ưu, nhược điểm của Selenium WebDriver

Selenium WebDriver

Ưu điểm

  • Được biết đến là phần mềm mã nguồn mở (open-source), WebDriver được các Tester sử dụng là công cụ mặc định. Từ đó giúp bạn tiết kiệm được chi phí khi sử dụng cùng toàn bộ quá trình Test.
  • Bộ công cụ này tương thích với hầu hết các trình duyệt web phổ biến: irefox, Internet Explorer, Chrome,… Bạn có thể dễ dàng chạy các trình duyệt này ở bất kỳ hệ điều hành nào từ Windows, Mac hay Linux.
  • Với khả năng hỗ trợ nhiều ngôn ngữ lập trình hiện nay: Python, C+, C#, Ruby,… Khi làm việc với công cụ này thì người dùng không phải học thêm bất cứ ngôn ngữ lập trình nào. Bạn có thể viết các đoạn script một cách hiệu quả bằng ngôn ngữ lập trình mà bạn thông thạo.
  • Khi so sánh với các thành phần khác của Selenium thì WebDriver có giao diện thân thiện nhất. Sở hữu nhiều tài liệu bổ ích và cần thiết kết hợp với các câu lệnh dễ nhớ và thuận thiện cho việc kiểm thử. Nhờ đó bạn có thể tiến hành công việc nhanh chóng và đạt hiệu quả cao hơn.
  • Ngoài ra, bạn sẽ nhận được sự trợ giúp tối đa của cộng đồng Selenium Webdriver trên toàn cầu. Nếu trong suốt quá trình kiểm thử gặp bất cứ vấn đề khó khăn hay vướng mắc gì. Đây cũng chính là điểm nổi bật khiến phần mềm này ngày càng được đón nhận.
  • Selenium WebDriver có khả năng hỗ trợ tự động hóa các trình duyệt web. Từng trình duyệt sẽ có công cụ hỗ trợ riêng: ChromeDriver là của Chrome, Selenium FirefoxDriver của Firefox,… Chính vì vậy mà tốc độ thực thi của Selenium WebDriver sẽ nhanh hơn nhiều so với các công cụ khác trong Selenium.
  • Khắc phục được các hạn chế của Selenium v1: tải lên tệp, tải xuống, cửa sổ bật lên và hộp thoại.
  • Các thử nghiệm có thể thực hiện trên nhiều hệ điều hành khác nhau: Windows, Mac, Linux, Android, iOS.

Selenium WebDriver

 

Nhược điểm

Bên cạnh những ưu điểm nổi trội trên thì bộ công cụ này cũng có nhiều điểm hạn chế:

  • Đúng như tên gọi thì bộ cụ này chỉ hoạt động trên nền tảng Website. Bạn không thể tìm cách để mở rộng WebDriver trên nền tảng ứng dụng của Windows. Điều này sẽ khiến bạn gặp khó khăn trong việc kiểm tra tốc độ kết nối với ứng dụng Windows.
  • Với xu hướng tự động hóa hiện nay thì các phần mềm kiểm thử tự động được ưa chuộng nhiều. Do đó bạn không cần phải có kiến thức quá cao siêu về code vẫn có thể làm tốt công việc này.
  • Tuy nhiên Selenium WebDriver lại trái ngược hoàn toàn. Nếu bạn không nắm vững kiến thức thì sẽ không thể sử dụng các tính năng có trong công cụ này. Vì vậy, kiến thức nền tảng về một loại ngôn ngữ lập trình nhất định là cần thiết. Ngoài ra bạn cần phải biết cách sử dụng thành thạo các công cụ kiểm thử tự động.
  • Khác với các công cụ khác thì WebDriver khó bảo trì và mở rộng quá trình kiểm thử. Bởi sự cứng nhắc trong công cụ này khi nó chỉ sử dụng một identifier (mã định danh) duy nhất trong suốt quá trình test. Vì vậy mà bộ công cụ này thực sự không phù hợp với các doanh nghiệp có quy mô lớn.
  • Không có sự hỗ trợ về các giải pháp áp dụng cho các lỗi kỹ thuật đến từ hệ thống nếu sử dụng bộ công cụ này. Tuy nhiên nếu gặp vấn đề thì bạn có thể nhận sự trợ giúp từ cộng đồng người dùng sử dụng WebDriver trên toàn thế giới.
  • Mặc dù là công cụ dùng để kiểm thử nhưng Selenium WebDriver không được trang bị chức năng lập báo cáo tự động. Điều này khiến cho việc khắc phục sự cố và lỗi khó khăn cùng mất nhiều thời gian hơn. Nếu muốn tạo báo cáo bạn phải sử dụng công cụ bên thứ ba: TestNG, JUnit hay Allure.

Selenium WebDriver

Hướng dẫn sử dụng Selenium Webdriver cho người mới

Chúng ta sẽ xem sét việc thiết lập Selenium Webdriver cho Windows với ngôn ngữ lập trình Java và sử dụng Eclipse IDE.

Cài đặt Java

Bước 1: Truy cập https://www.oracle.com/java/technologies/downloads/ và tải xuống JDK for Windows x64 Installer

b

Bước 2: Chấp nhận thỏa thuận và tải xuống

Bước 3: Sau khi tải xuống, nhấn đúp vào tệp để Java được cài đặt trong hệ thống của bạn

Thiết lập môi trường

Bước 1: Chuột phải vào My Computer chọn Properties. Một hcửa sổ hiện ra, chọn Advanced system settings

Bước 2: Chọn Environment Variables

Environment Variables 

Bước 3: Bên dưới System variables, bấm đúp chuột vào Path

b 

Bước 4 : Thêm đường dẫn đầy đủ của thư mục cài đặt Java theo vị trí hệ thống của bạn và nhấp vào OK.

Như vậy là quá trình thiết lập đã hoàn tất, mở Command Prompt và nhập  java -version. Bạn sẽ thấy phiên bản java được cài đặt trong hệ thống của mình

Bước tiếp theo là cài đặt Eclipse

Cài đặt Eclipse

Tải xuống Eclipse IDE for Java Developers tại https://www.eclipse.org/downloads/packages/ tiến hành cài đặt.  Như vậy bạn đã hoàn thành điều kiện thứ 2

Cài đặt Selenium Webdriver

Bước 1: Tải xuống Selenium Client & WebDriver Language Bindings từ trang web Selenium. Bạn có thể tải xuống các thư viện máy khách tương ứng với tùy chọn ngôn ngữ của mình. Trong bài viết này chúng ta sẽ làm việc với Java Client Bindings.

Selenium Client WebDriver Language Bindings 

Bước 2: Tiến hành giải nén, bạn sẽ thấy có các tệp jar, thư mục libs và tệp CHANGELOG

buoc 

Bước 3: Tiếp theo cần cần tải xuống driver trình duyệt sẽ giúp bạn khởi tạo trình duyệt. Dưới đây là một số trình duyệt chính

Bước 4: Tiếp theo bạn chỉ cần giải nén driver đã tải xuống.Bây giờ chúng ta đã hoàn tất việc thiết lập các điều kiện cần.

Cách thiết lập Eclipse cho Selenium Webdriver

Bước 1 : Khởi chạy Eclipse

Bước 2 : Chọn không gian làm việc của bạn theo cách thủ công hoặc để vị trí mặc định và nhấp vào OK.

Eclipse for Selenium WebDriver 

Bước 3: Tạo một dự án mới bằng cách: File > New > Java Project. Đặt tên cho project và nhấn Finish

Bước 4: Bây giờ dự án của bạn đã được tạo, nhấp chuột phải vào dự án và chọn New > Package.

Bước 5: Nhập tên gói trong hộp thoại Java Package mới và nhấp Finish

java package 

Bước 6: Bạn cần tạo một class mới trong package ngay bây giờ. Nhấp chuột phải vào tên package, chọn New > Class

Bước 7: Trong hộp thoại Java class mới, hãy nhập tên cho class của bạn, chọn phương thức stub viz, public static void main(String[] args) và nhấp Finish

java class

Bước 8: Bây giờ chúng ta đã tạo một phác thảo cho dự án kiểm thử, tiếp theo cần nhập các thư viện đã cài đặt ở phần trên. Nhấp chuột phải vào dự án > Build Path > Configure Build Path

Build Path 

Bước 9: Nhấp vào Add External Jar và chọn đến vị trí các tệp Jar đã giải nén ở phần trên

Bước 10: Chọn 2 tệp selenium-api-4.8.3.jar và selenium-api-4.8.3-sources.jar và các tệp trong mục libs. Sau khi thêm vào, bạn sẽ thấy các file jar bên dưới Libraries

Bước 11: Click vào Apply rồi OK. Giờ đây, bạn có thể thấy các Referenced Libraries 

Như vậy chúng ta đã định cấu hình Selenium WebDriver trong Eclipse và bắt đầu để viết tập lệnh kiểm thử đầu tiên

Cách Selenium Webdriver làm việc?

Selenium WebDriver

Điều kiện sử dụng Webdriver

  • Áp dụng khi sử dụng một ngôn ngữ lập trình nhất định trong việc thiết kế Test case.
  • Kiểm tra các ứng dụng có nhiều chức năng dựa trên AJAX.
  • Tiến hành các kiểm thử trên trình duyệt HtmlUnit.
  • Tạo kết quả kiểm thử tùy chỉnh.

Xây dựng Test script theo testcase

  • Nếu bạn muốn Webdriver mô phỏng được các hành động: click chuột hoặc điền giá trị. Trước tiên nó cần xác định được vị trí của element (phần tử) trên trang web mà nó sẽ tương tác. Dựa trên css Selector hoặc Xpath để xác định.
  • Khi đã xác định được vị trí thì bạn cần xác định được hành động đối với element đó. Bằng các API được viết sẵn trong các gói thư viện của Webdriver.
  • Sau khi bạn hoàn thành trình tự hành động theo trình tự trên thì bạn hãy kiểm tra xem trang web có thực hiện đúng hay không?

Kiểm tra chức năng

  • Cụ thể ở đây là chức năng Login thì bạn cần xác định được vị trí của các element gồm: Username, Password, Submit Button. Từ đó truyền đến Webdriver để nó biết được vị trí của từng phần tử.
  • Hành động nhập dữ liệu được áp dụng với Username và Password. Còn với Submit Button thì ta sẽ dùng phương thức mô phỏng Click chuột.
  • Tiếp đó viết câu lệnh kiểm tra xem dữ liệu nhập vào thì login có thành công không. Bằng việc xem nó có chuyển hướng sang Page khác? Với thao tác đơn giản là bạn có thể xem Login đúng hay sai. Nhưng với automation thì nó được check tự động và phải chọn những điểm làm căn cứ đánh dấu Pass/Fail.

Kiểm tra Testcase fail hay pass

  • Khi đã viết xong script thì bạn sẽ tiến hành chạy để kiểm tra xem Testcase đúng hoặc sai. Trong quá trình khởi chạy thì Selenium WebDriver sẽ tương tác trực tiếp với trình duyệt quá driver của trình duyệt đó. Bây giờ thì các hành động trên script sẽ được thực thi.
  • Với mỗi hành động từ script, một HTTP request sẽ được tạo ra. Tiếp đó thì HTTP request đó gửi đến browser driver. Tương ứng với browser driver sẽ có 1 HTTP server để nhận lấy HTTP request.
  • Khi nhận xong thì HTTP server xác định những bước cần thiết để thực thi hành động phản hồi lại request. Tiếp đó thực thi các bước: mở trang web, điền thông tin vào Input,… Sau cùng thì HTTP server trả lại trạng thái thực hiện những hành động cho client, nơi đang run script.

Selenium WebDriver

Một số lệnh phổ biến trong Selenium WebDriver

  • Để điều hướng đến một trang web ta dùng lệnh: driver.get(“URL”)
  • Nhập một số văn bản vào input box sử dụng lệnh: element.sendKeys(“inputtext”)
  • Xóa bỏ nội dung trong input box nhập lệnh: element.clear()
  • Bỏ chọn tất cả Option đến Select đầu tiên trên trang nhập lệnh: select.deselect All()
  • Chuyển từ frame này sang frame có tên hoặc id là “frameName” dùng lệnh: driver.switchTo().frame(“frameName”)
  • Di chuyển con trỏ chuột từ cửa sổ này sang cửa sổ khác dùng lệnh: driver.switchTo().window(“windowName”)
  • Đóng trình duyệt hiện tại và các liên kết đến driver: driver.close()
  • Xử lý alert sử dụng lệnh: driver.switchTo().alert()
  • Chọn Option với đầu vào được chỉ định bởi người dùng dùng lệnh: select.selectByVisibleText(“some text”)
  • Thoát driver và đóng tất cả các cửa sổ liên quan đến driver đó thì nhập lệnh: driver.quit()
  • Tải lại trang hiện tại: driver.refresh()
  • Chuyển hướng về trang trước nhập lệnh: driver.navigate().back()
  • Để chuyển hướng đến URL thì dùng lệnh: driver.navigate().to(“URL”)
  • Nếu muốn chuyển hướng đến trang tiếp theo dùng lệnh: driver.navigate().forward()

Những điều cần chuẩn bị khi học Selenium Webdriver

Bên cạnh những kiến thức nền tảng thì bạn cần phải chú ý một số điểm sau khi học Webdriver:

  • Máy tính để học cần có hiệu năng tốt và ổn định đã cài sẵn ngôn ngữ Java 8 cùng chuẩn bị thêm bộ IDE code soạn thảo.
  • Bạn cần chuẩn bị tốt các cơ sở kiến thức nền tảng về Java cơ bản.
  • Cần cài đặt sẵn Add – on trên trình duyệt Google Chrome trong máy tính.
  • Tiến hành tải và lưu các file dữ liệu driver trên trình duyệt quen thuộc gồm: Firefoxdrive, chromedrive,…

Selenium WebDriver

Các trang web giúp học Selenium WebDriver nhanh và hiệu quả

Để trau dồi và tích lũy thêm nhiều kiến thức khi sử dụng bộ công cụ kiểm thử tự động Selenium. Bạn có thể tham khảo, học thêm ở một số trang web sau:

www.seleniumhq.org

Đây là trang web hàng đầu chuyên cung cấp các tài liệu về WebDriver dành cho những bạn mới bắt đầu. Bạn có thể tìm hiểu rõ hơn về cách thức sử dụng của công cụ kiểm thử tự động này một cách chi tiết. Với thao diện thân thiện cùng những tính năng nổi trội chắc chắn bạn sẽ nắm rõ được các kiến thức cần thiết về WebDriver một cách nhanh chóng.

Selenium WebDriver

http://www.seleniumeasy.com

Ngoài website trên thì bạn có thể tham khảo và học hỏi từ trang web này. Để nắm vững hơn các kiến thức về Selenium WebDriver. Với nhiều bài học bổ ích cùng ví dụ thực tế áp dụng với những ngôn ngữ khác nhau. Đây là kênh học tập hiệu quả dành cho người mới bắt đầu và những chuyên gia.  

https://www.guru99.com/selenium-tutorial.html

Trang web này cung cấp cho bạn nhiều kiến thức hữu ích về các thủ thuật WebDriver từ đơn giản đến phức tạp. Bạn có thể tham khảo trang web này để học hỏi thêm nhiều kiến thức mới thông qua những bài hướng dẫn chi tiết và dễ hiểu.

Qua những nội dung đã chia sẻ ở trên thì bạn đọc đã hiểu rõ hơn về Selenium WebDriver. Đồng thời trau dồi nhiều thêm các kiến thức trong lĩnh vực kiểm thử phần mềm. Nếu có bất cứ vấn đề gì cần giải đáp thì hãy để lại bình luận phía dưới nhé!

Tìm hiểu thêm: Các loại công cụ test tự động phổ biến hiện nay

1. Selenium ide khác gì selenium webdriver

Selenium IDE và Selenium WebDriver là hai công cụ khác nhau thuộc dự án Selenium, nhưng chúng có mục tiêu và tính năng khác nhau. Dưới đây là một so sánh giữa Selenium IDE và Selenium WebDriver:
Mục Tiêu Chính:
Selenium IDE: Là một công cụ thí nghiệm tự động hóa kiểm thử chủ yếu dành cho những người không có kỹ năng lập trình. Nó cung cấp một giao diện đồ họa để ghi và chạy các bài kiểm thử.
Selenium WebDriver: Là một thư viện lập trình hỗ trợ nhiều ngôn ngữ (Java, Python, C#, Ruby, JavaScript) để tạo và điều khiển các trình duyệt web thông qua mã nguồn.
Ngôn Ngữ Lập Trình:
Selenium IDE: Thường chỉ hỗ trợ các tác vụ kiểm thử cơ bản và ít linh động trong việc mở rộng chức năng. Không đòi hỏi kỹ năng lập trình cao.
Selenium WebDriver: Cho phép bạn sử dụng nhiều ngôn ngữ lập trình mạnh mẽ để xây dựng kịch bản kiểm thử phức tạp và linh hoạt.
Độ Linh Hoạt và Mạnh Mẽ:
Selenium IDE: Dễ sử dụng và thích hợp cho những tác vụ kiểm thử đơn giản, nhưng có hạn chế đối với các kịch bản phức tạp và không linh hoạt như WebDriver.
Selenium WebDriver: Cung cấp mức độ linh hoạt cao hơn, cho phép bạn tùy chỉnh và tự động hóa nhiều hơn so với Selenium IDE.
Khả Năng Mở Rộng:
Selenium IDE: Thường được sử dụng cho các dự án kiểm thử nhỏ hoặc kiểm thử đơn vị, và có khả năng mở rộng hạn chế.
Selenium WebDriver: Có thể được tích hợp vào các dự án lớn và phức tạp, với khả năng mở rộng tốt thông qua các thư viện hỗ trợ và framework kiểm thử.
Hỗ Trợ Đa Trình Duyệt:
Selenium IDE: Thường hỗ trợ ít trình duyệt hơn so với WebDriver.
Selenium WebDriver: Hỗ trợ nhiều trình duyệt web, bao gồm Chrome, Firefox, Edge, Safari, và nhiều trình duyệt khác.

2. Vai trò của Selenium WebDriver trong quá trình phát triển phần mềm trên GitHub

Kiểm Thử Tự Động:
Selenium WebDriver giúp thực hiện kiểm thử tự động cho các chức năng của ứng dụng web, đảm bảo rằng các tính năng hoạt động đúng như mong đợi và không bị hỏng sau mỗi lần thay đổi mã nguồn.
Đảm Bảo Chất Lượng Phần Mềm:
Selenium WebDriver chơi một vai trò quan trọng trong việc đảm bảo chất lượng của phần mềm trên GitHub. Bằng cách kiểm thử tự động, nó giúp phát hiện lỗi sớm và giảm nguy cơ các vấn đề tiềm ẩn.
Kiểm Thử Giao Diện Người Dùng (UI):
Selenium WebDriver thường được sử dụng để kiểm thử giao diện người dùng của ứng dụng web trên nhiều trình duyệt và nền tảng khác nhau.
Kiểm Thử Tích Hợp:
Selenium WebDriver có thể tích hợp vào các công cụ kiểm thử tích hợp khác và hệ thống liên quan đến GitHub để thực hiện các bài kiểm thử tự động khi có sự thay đổi trong mã nguồn.
Kiểm Thử Duyệt Qua Nhiều Trình Duyệt:
Với khả năng hỗ trợ nhiều trình duyệt, Selenium WebDriver giúp đảm bảo rằng ứng dụng web hoạt động một cách nhất quán trên mọi trình duyệt.
Hỗ Trợ Quá Trình CI/CD:
Selenium WebDriver thường được tích hợp vào các quy trình CI/CD (Continuous Integration/Continuous Deployment) để đảm bảo rằng bất kỳ thay đổi nào cũng được kiểm thử tự động trước khi triển khai.

Tóm lại, Selenium WebDriver đóng vai trò quan trọng trong việc đảm bảo chất lượng của phần mềm và giúp tối ưu hóa quá trình phát triển và triển khai trên nền tảng GitHub.

5/5 - (2 bình chọn)
Từ khóa:
Bình luận
Icon Phone