Selenium WebDriver – Đối tượng lập trình

Selenium WebDriver, về cơ bản không phải là một công cụ kiểm thử tự động. Nó chỉ là một bộ thư viện (API) hỗ trợ cho việc thiết kế các kịch bản kiểm thử cho các ứng dụng Web dựa trên các ngôn ngữ lập trình như Python, C# hay Java. Trong bài viết này, mình sẽ liệt kê ra một số đối tượng lập trình (class hay object) chính mà Selenium WebDriver hỗ trợ.

Đối tượng WebDriver

Để thực thi một kịch bản kiểm thử ứng dụng Web, đầu tiên chúng ta phải quan tâm chính là trình duyệt. Đối tượng WebDriver sẽ khởi tạo ra một trình duyệt tương ứng với cách mà chúng ta thiết lập trong mã nguồn. Đối tượng WebDriver có thể là FireFox, Internet Explorer, Chrome… Đối tượng WebDriver này cũng là đối tượng chính mà từ đó chúng ta có thể tương tác với các đối tượng UI có trên trang Web hiện hành.

Các phương thức cơ bản của WebDriver trong Python:

  • implicitly_wait: Phương thức này dùng để xác định thời gian tối đa mà Selenium WebDriver chấp nhận chờ đợi một đối tượng UI được hiển thị trên trang Web. Tham số của phương thức này là một con số theo đơn vị là giây.
  • get: Phương thức này dùng để trình duyệt đi đến một trang Web. Tham số của phương thức này là một chuỗi URL.
  • find_element: Phương thức này dùng để xác định một đối tượng UI dựa trên hai tham số là phương thức tìm kiếm (By) và giá trị tìm kiếm.
  • quit: Phương thức này dùng để đóng lại trình duyệt.

browser

Đối tượng WebElement

Đây là đối tượng mà khi dùng Selenium WebDriver chúng ta sử dụng nhiều nhất. Nó chính là mô tả vật lý cho đối tượng UI mà chúng ta muốn tương tác trên trang Web. Trong Selenium WebDriver, chúng ta không phân biệt từng loại đối tượng UI cụ thể như button, textbox hay checkbox, mà tất cả chỉ là WebElement phân biệt bằng các html tag. Các bạn chú ý là đối tượng WebElement này có tính chất real time, nghĩa là nếu trang web thay đổi, chúng ta phải khai báo và xác định lại đối tượng này.

html tag

Các phương thức cơ bản của WebElement trong Python:

  • click: Phương thức này dùng để ra lệnh click chuột lên đối tượng WebElement.
  • send_keys: Phương thức này dùng để ra lệnh gõ ký tự lên đối tượng WebElement. Tham số của phương thức này chính là giá trị mà chúng ta muốn gõ.

Đối tượng By

Đây là đối tượng được dùng để xác định đối tượng UI dựa trên tính chất vật lý nào của WebElement. Trong Selenium WebDriver, chúng ta có thể xác định đối tượng UI dựa trên các tính chất như ClassName, CssSelector, Id, LinkText, Name, PartialLinkText, TagName và XPath. Để hiểu rõ hơn các tính chất này, các bạn có thể tham khảo lại bài “Selenium – Xác Định Đối Tượng UI”.

Đối tượng SelectElement

Đây là một đối tượng đặc biệt của Selenium WebDriver. Nó là dạng mở rộng hơn đối tượng WebElement, dùng để mô tả một loại đối tượng UI đặc biệt – Dropdown list hay List.

Các phương thức cơ bản của SelectElement trong Python:

  • select_by_index: Phương thức này dùng để chọn một phần tử trong danh sách với số thứ tự của nó. Tham số cho phương thức này là số thứ tự của phần tử trong danh sách.
  • select_by_value: Phương thức này dùng để chọn một phần tử trong danh sách bằng chính giá trị của phần tử. Tham số cho phương thức này là giá trị của phần tử.
  • deselect_all: Phương thức này dùng để huỷ bỏ mọi lựa chọn đang có trong danh sách.
  • first_selected_option: Phương thức này dùng để lấy ra phần tử đầu tiên trong các phần từ đang được chọn trong danh sách.