Buổi 3: Cách xác định Locators của elements trên website

QA/QC Sep 02, 2021

Vậy Locator là gì?

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,.... thì  đố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.

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.

Sau khi xác định được id chúng ta dùng câu lệnh sau để khai báo element này:

@FindBy(id = "user_email")
WebElement eleEmail;

Name

Thuộc tính Name cũng gần giống với Id với 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

Sau khi lấy được name chúng ta dùng câu lệnh sau để khai báo element này

@FindBy(name = "password")
WebElement elePass;

LinkText

Link text thì hiển thị khá rõ ràng vì nó hiển thị ngay trên UI

https://lh4.googleusercontent.com/CFFshOnV3ZMSidGQtG0czOtQZqwKruW59qQhRD-qaAw0O4ZeBYaBr7nZ3NDISDe4gT83mcW7LFZ4rilNk4AFBjqiMnDgyU4fjfh9o9Cw1861PwlvwUSWu6Odl7qo9miev2asC-8=s0

Sau khi lấy  được linktext chúng ta dùng câu lệnh sau để khai báo cho element này

@FindBy(LinkText = “Link text”)
WebElement eleEmail;

Nhưng cách này k nên áp dụng nếu link text thường xuyên thay đổi và nội dung link text trong 1 trang có nhiều text giống nhau

TagName (Bộ định vị tên thẻ HTML)

Như tên chỉ định, công cụ định vị css này trong Selenium WebDriver được sử dụng để xác định các phần tử có tên thẻ như thẻ div, class, v.v. Một ví dụ phổ biến về cách sử dụng này có thể là định vị tất cả các liên kết trên trang chủ của bạn và xác minh xem chúng có hoạt động hay không.

Ví dụ:

@FindBy(TagName = “a”)
WebElement eleTagName;

Cách này ít dùng, vì không chính xác.

ClassName (Bộ định vị tên lớp trong HTML)

Bộ định vị tên lớp giúp định vị phần tử được xác định thông qua thuộc tính lớp. Ví dụ:

@FindBy(ClassName = “form control”)
WebElement eleEmail;

Cách này ít dùng vì không chính xác, dễ trùng, bởi nhiều phần tử chung class.

Xpath

Trong Selenium nếu không thể tìm kiếm các elements bởi các định vị như id, class, name... thì hoàn toàn có thể nghĩ tới xpath để tìm các elements đó trên web, xpath cũng là phương thức được đông đảo người dùng sử dụng để tìm kiếm các thành phần trên trang web.

Xpath là gì

  • Xpath được định nghĩa như một XML path. Nó là cú pháp hay ngôn ngữ để tìm kiếm bất kỳ element nào trên trang web sử dụng XML path expression. Cú pháp cơ bản của Xpath như hình dưới đây:
[Selenium Java] Lesson 6: Cách xác định Locator của Element trên website | Anh Tester

Cú pháp trong Selenium:

@FindBy(xpath = "chuỗi xpath của element")
WebElement eleEmail;

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.