NỘI DUNG BÀI HỌC
✅ Hiểu được ý nghĩa Object Repository và biết cách tạo ra Test Object trong Katalon
✅ Xác định đối tượng trên Web bằng XPath. Trong đó nắm được khái niệm: Node, Syntax, Operator và Axes
✅ Vận dụng và thực hành bắt được các đối tượng web bằng XPath
GIỚI THIỆU VỀ PROFILE
📒 Profile trong Katalon
-
-
- Profile là nơi lưu trữ tất cả các thông tin cần thiết cho mỗi lần thực thi script automation test
- Từ các thông tin được lưu trữ trong Profile, trong môi phiên thực thi, các biến toàn cục sẽ được tạo ra với giá trị tương ứng
-
📒 Hướng dẫn tạo Profile trong Katalon
-
-
- Chuột phải [Profile] trên cây thực mục
- Chọn [New]
- Chọn [Execution Profile]
- Nhập tên Profile ở phần "Name" trên dialog "New Execution Profile"
- Click [OK]
-
📒 Tạo GlobalVariable trong Profile
-
-
- Trên cửa sổ Profile vừa tạo, click [Add]
- Trên dialog "New Variable" nhập các thông tin của Variable:
- Name: Tên biến
- Value Type: Kiểu dữ liệu của biến
- Value: Giá trị ban đầu của biến khi được khởi tạo
- Description: Mô tả biến
- Click [OK]
-

📒 Các kiểu dữ liệu của GlobalVariable
-
-
- String
- Number
- Boolean
- Null
- Test Data Value
- Test Object
- Test Data
- Range
- List
- Map
-
GIỚI THIỆU VỀ OBJECT REPOSITORY
💻 Object Repository trong Katalon
-
-
- Là kho lưu trữ các Test Object trong project Katalon
- Các loại Test object trong Katalon
- WebUI Element: Đối tượng trên giao diện Web
- Web Service Request: Các API của Web Service
- Mobile Object: Đối tượng trên thiết bị di động
- Window Object: Đối tượng trên ứng dụng Desktop
-
📋 Các bước tạo Test object trên Giao diện Web
-
-
- Chuột phải [Object Repository] trên cây thư mục
- Chọn [New]
- Chọn [Test Object]
-

-
-
- Nhập tên Test Object ở phần "Name" trên dialog "New"
- Click [OK]
-

📋 Web Element Locator bằng XPath
-
-
- Trên cửa sổ Test Object vừa tạo, chọn phương thức xác định Web Element bằng XPath trong phần [Selection Method]
- Chọn radio button [XPath]
- Nhập giá trị XPath của Web Element Locator vào trường "Selected Locator"
- Click [Save]
-
GIỚI THIỆU VỀ XPATH
👀 XPath là gì?
-
-
- XPath (XML Path Language) là một ngôn ngữ truy vấn được dùng để xác định vị trí của các phần tử trong tài liệu XML. XPath giúp tìm kiếm phần tử trên giao diện bằng cách dựa vào cấu trúc của DOM (Document Object Model).
-
🗒 XPath Nodes
-
-
- Node trong XPath là một trong các thành phần cơ bản của mô hình dữ liệu XPath. Một tài liệu XML được xem như một cây các node. XPath được sử dụng để điều hướng và chọn các node này.
-
<div class="login-form"><!--login form-->
<h2>Login to your account</h2>
<form action="/login" method="POST">
<input type="hidden" name="csrfmiddlewaretoken" value="BAHXINUImSpHYTPMBbKLXK70eJfmQNcxEx6ec4X45Tlui2oK3uagHtuR2CrfUKAE">
<input type="email" data-qa="login-email" placeholder="Email Address" name="email" value="" required="">
<input type="password" data-qa="login-password" placeholder="Password" name="password" value="" required="">
<button type="submit" data-qa="login-button" class="btn btn-default">Login</button>
</form>
</div>
-
-
- Những loại node thường gặp
- Root Node: Là node gốc của cây, đại diện cho toàn bộ tài liệu XML. Nó là node duy nhất không có node cha. (Ví dụ: <div> ở trên hình trên)
- Element Node: Đại diện cho một thẻ XML (ví dụ: <h2>, <form>,... ở hình trên). Các element node có thể chứa các node con khác.
- Text Node: Chứa nội dung văn bản bên trong một element. Ví dụ, trong <button type="submit" data-qa="login-button" class="btn btn-default">Login</button>, "Login" là một text node.
- Attribute Node: Đại diện cho một thuộc tính của một element. Ví dụ, trong <div class="login-form">, class="login-form" là một attribute node. Lưu ý rằng attribute node không phải là node con của element mà nó thuộc về, mặc dù nó được liên kết với element đó.
- Comment Node: Đại diện cho một comment trong XML, ví dụ: <!--login form-->.
- Những loại node thường gặp
-
- Các mối quan hệ chính của các nodes trong XML:
- Parent: Ngoại trừ root node thì mỗi một element đều có một parent node
- Children: Mỗi một element có thể không có, có một hoặc nhiều children node
- Siblings: Các nodes có cùng một parent node
- Ancestor: Node cha hoặc các node tổ tiên của một node được chỉ định
- Descendants: Node con hoặc các node cháu chắt của một node được chỉ định
- Các mối quan hệ chính của các nodes trong XML:
-
🗒 XPath Syntax
Một biểu thức XPath cơ bản bao gồm một hoặc nhiều thành phần sau:
-
-
- Path Expressions (Biểu thức đường dẫn): Đây là phần cốt lõi của XPath, sử dụng các ký hiệu giống như đường dẫn tệp để di chuyển qua cây node.
-
- / : Chọn node gốc (root).
- /element: Chọn tất cả các node <element> là con trực tiếp của node gốc.
- //element: Chọn tất cả các node <element> ở bất kỳ vị trí nào trong tài liệu.
- @attribute: Chọn thuộc tính (attribute) của một node. Ví dụ: //book/@id sẽ chọn thuộc tính id của tất cả các node <book>.
-
- Path Expressions (Biểu thức đường dẫn): Đây là phần cốt lõi của XPath, sử dụng các ký hiệu giống như đường dẫn tệp để di chuyển qua cây node.
-
-
-
- Predicates (Vị ngữ): Được sử dụng để lọc các node dựa trên một điều kiện. Vị ngữ được viết trong ngoặc vuông [].
-
<div class="login-form"><!--login form-->
<h2>Login to your account</h2>
<form action="/login" method="POST">
<input type="hidden" name="csrfmiddlewaretoken" value="BAHXINUImSpHYTPMBbKLXK70eJfmQNcxEx6ec4X45Tlui2oK3uagHtuR2CrfUKAE">
<input type="email" data-qa="login-email" placeholder="Email Address" name="email" value="" required="">
<input type="password" data-qa="login-password" placeholder="Password" name="password" value="" required="">
<button type="submit" data-qa="login-button" class="btn btn-default">Login</button>
</form>
</div>
-
-
-
- //input[2]: Chọn node <input> thứ 2.
- //form[input]: Chọn tất cả các node <form> có node con là <input>.
- //div[@class='login-form']: Chọn node <div> có thuộc tính class bằng 'login-form'.
-
-
-
-
- Operators (Toán tử): Giúp bạn tạo ra các điều kiện phức tạp hơn trong predicates.
- Toán tử so sánh: =, !=, <, >, <=, >=.
- Toán tử logic: and, or, not().
- Operators (Toán tử): Giúp bạn tạo ra các điều kiện phức tạp hơn trong predicates.
-
-
-
- Functions (Hàm): XPath có sẵn nhiều hàm tích hợp để xử lý chuỗi, số, và các tập hợp node.
- text(): Chọn nội dung văn bản của một node. Ví dụ: //button[text()='Login'].
- contains(): Kiểm tra một chuỗi có chứa một chuỗi con không. Ví dụ: //div[contains(@class, 'login-form')]
- normalize-space() được sử dụng để loại bỏ các khoảng trắng thừa ở đầu, cuối và giữa một chuỗi. Nó loại bỏ tất cả các khoảng trắng (bao gồm dấu cách, tab, và xuống dòng) ở đầu và cuối chuỗi và thay thế bất kỳ chuỗi các khoảng trắng nào ở giữa bằng một dấu cách duy nhất. Ví dụ //button[normalize-space()='Login']
- Functions (Hàm): XPath có sẵn nhiều hàm tích hợp để xử lý chuỗi, số, và các tập hợp node.
-
📚 XPath Axes:
-
-
- Cú pháp để xác đinh Web Element Locator bằng XPath Axes: axisname::nodetest[predicates] Trong đó:
- axisname là tên mối quan hệ cây giữa node cần chọn và node hiện tại
- nodetest là node cần chọn của trục
- predicate là biểu thức để định nghĩa cụ thể cho một node (có thể không có hoặc có nhiều biểu thức)
- Cú pháp để xác đinh Web Element Locator bằng XPath Axes: axisname::nodetest[predicates] Trong đó:
-
Axis Name |
Mô tả |
ancestor |
Chọn tất cả các node tổ tiên của node hiện tại |
parent |
Chọn parent node của node hiện tại |
following-sibling |
Chọn các nodes là "em ruột" (cùng parent node phía sau node hiện tại) |
preceding-sibling |
Chọn các nodes là "anh/chị ruột" (cùng parent node phía trước node hiện tại) |