Tìm hiểu về Selenium WebDriver để ứng dụng vào Automation Testing

Tìm hiểu về Selenium

Selenium là bộ kiểm thử tự động miễn phí (mã nguồn mở) tự động dành cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau.

Selenium là bộ phần mềm, mỗi bộ đáp ứng nhu cầu kiểm thử khác nhau

  • Selenium IDE

Được tạo ra bởi Shinaya Kasatani của Nhật. Selenium IDE là một phần mở rộng của Firefox có thể tự động hoá trình duyệt thông qua tính năng ghi lại và phát lại.

  • Selenium Remote Control (Selenium 1)

Được tạo ra bởi Paul Hammant – 1 kỹ sư của ThoughtWork. Paul Hammant đã quyết định tạo một máy chủ sẽ hoạt động như một proxy HTTP để “đánh lừa” trình duyệt để tin rằng Selenium Core và ứng dụng web được thử nghiệm đến từ cùng một tên miền.

  • Web driver Web driver

Được tạo ra bởi Simon Stewart vào năm 2006 khi các trình duyệt và các ứng dụng web đang trở nên mạnh hơn và hạn chế hơn với các chương trình JavaScript như Selenium Core. Đây là khuôn khổ kiểm tra nền tảng đầu tiên có thể điều khiển trình duyệt từ cấp hệ điều hành.

  • Selenium Grid Selenium Grid

Được phát triển bởi Patrick Lightbody để giải quyết nhu cầu giảm thiểu thời gian thực hiện thử nghiệm càng nhiều càng tốt. Nó có khả năng chụp các ảnh chụp màn hình của trình duyệt trong các giai đoạn quan trọng, đồng thời gửi các lệnh Selenium cho các máy khác nhau cùng một lúc.

Tổng quan về Selenium WebDriver

Công cụ Cucumber chỉ hỗ trợ cho kiểm thử viên và lập trình viên mô tả các hành vi của người dùng dưới dạng ngôn ngữ tự nhiên. Ngôn ngữ tự nhiên này giúp toàn thành viên trong đội phát triển cũng như khách hàng có cái nhìn chung về hệ thống mà không cung cấp thư viện để thao tác với các thành phần trên giao diện Web. Câu hỏi đặt ra là làm thế nào để có thể thao tác được với các thành phần trên Web để tái hiện lại các hành vi của người dùng được mô tả bởi Cucumber. Selenium WebDriver sẽ làm được điều đó. Đây là công cụ mã nguồn mở, hoàn toàn miễn phí và cung cấp đầy đủ các thư viện thao tác trên ứng dụng Web.

  • Tính năng chính trong Selenium 2.0 là việc tích hợp WebDriver API. Selenium WebDriver được thiết kế để mang đến một giao diện lập trình đơn giản hơn và giải quyết một số hạn chế trong Selenium- RC API (Một phần khác của Selenium có thể coi là phiên bản tiền thân của selenium WebDriver)
  • Selenium WebDriver cho phép chúng ta sử dụng một trong số các ngôn ngữ lập trình như HTML, Java, .Net, Perl, Ruby… để tạo kịch bản test (Test Case) kết hợp với sử dụng các điều kiện, vòng lặp… khiến cho test script trở nên chính xác hơn.
  • Selenium WebDriver được phát triển tốt hơn để hỗ trợ cho các trang web động ( Những trang web mà phần tử trong nó có thể thay đổi ngay cả khi trang đó không được tải lại)
    Mục đích của WebDriver là hỗ trợ cho các vấn đề về kiểm thử web-app hiện nay.

Cách để định vị vị trí của web element bằng Locator

Nếu như Manual Testing chúng ta có thể tự biết được nhập dữ liệu vào đâu, click vào button, checkbox nào, nhận biết được item trước và sau thay đổi như thế nào… Nhưng đối với Automation thì làm sao máy có thể hiểu được sẽ thao tác vào link, button, check box… nào đây? Đấy chính là lúc cần đến Locator, mỗi phần tử HTML trong trang web đều được xác định bằng Locator. Locator giúp phân biệt được các đối tượng UI trên phần mềm mà chúng ta cần kiểm tra.

Trong selenium, các phần tử trên web (WebElement) có vai trò rất quan trọng. Selenium hỗ trợ người dùng 7 cách để xác định các phần tử web này (Locator)

selenium webdriver locator

Xác định phần tử Web theo ID

Cách lấy Locator sử dụng Id dường như là cách làm đơn giản và thuận tiện nhất. Mỗi phần tử trên trang web thường có 1 ID duy nhất. Nhưng không phải developer nào cũng sẽ đặt ID cho mỗi phần tử. Vì việc này sẽ mất thời gian và cũng không thật sự cần thiết cho hầu hết các phần tử trên trang web

selenium webdriver by ID

Xác định phần tử Web theo Name

Thuộc tính Name cũng gần giống với Id. Mỗi phần tử trên trang web thường sẽ được gắn cho 1 cái tên duy nhất. Tương tự ID thì Name này cũng không bắt buộc nên không phải lúc nào chúng ta cũng có thể sử dụng Name

selenium webdriver by name

Xác định phần tử Web theo LinkText

Link text thì hiển thị khá rõ ràng vì nó hiển thị ngay trên UI. Nhưng cách này không nên áp dụng nếu link text thường xuyên thay đổi và nội dung link text trong một trang có nhiều text giống nhau

selenium webdriver by linktext

Và còn rất nhiều các cách khác nhau để xách định vị trí của Web element, hãy đăng ký ngay form bên dưới để nhận ngay Ebook miễn phí về Cẩm nang sử dụng Css Locator và Xpath Selector.

[mautic type=”form” id=”9″]

Các hàm xử lý chung trong Selenium WebDriver

By.classNamevalue của class attributefindElement(By.className(“someClassName”))
By.cssSelectorlocator bằng cssfindElement(By.cssSelector(“input#email”))
By.id value của id attributefindElement(By.id(“someId”))
By.linkTextlocator bằng value findElement(By.linkText(“REGISTRATION”))
By.tagNamename của tagfindElement(By.tagName(“div”))
By.xpathlocator bằng xpath findElement(By.xpath(“//html/body/div”)
By.name value của name attribute findElement(By.name(“someName”))
open urldriver.get(baseUrl);
click an elementdriver.findElement(By.className(“someClassName”)).click()
type text to textboxdriver.findElement(By.className(“someClassName”)).sendkey(“test”)
refresh current pagedriver.navigate().refresh()
back page driver.navigate().back()
forward pagedriver.navigate().forward()
close browserdriver.close() or driver.quit()
pauseThread.sleep(5000);

Vậy là chúng ta vừa hoàn thành xong tất cả những kiến thức cơ bản về Selemnium WebDriver, nếu có bất kỳ thắc mắc nào, hãy comment vào phần bên dưới bạn nhé. Cảm ơn bạn đã luôn quan tâm và ủng hộ chúng tôi, chúc bạn thành công trên con đường trở thành kỹ sư kiểm thử phần mềm tự động. Nếu bạn quan tâm tới khoá học giúp bạn trở thành kỹ sư kiểm thử phần mềm chuyên nghiệp, giúp sự nghiệp của bạn được phát triển bền vững, hãy đăng ký ngay TESTER In Life. Khoá học này là những gì thực sự cần thiết cho một TESTER để bạn rút ngắn con đường hướng tới thành công.

Leave a Reply