XPath Contains, Sibling, Ancestor, AND OR, Parent, Start with, Axes trong Selenium Webdriver
Bài đăng này đã không được cập nhật trong 4 năm
Nếu một Xpath đơn giản không thể tìm thấy những phần tử phức tạp trên web, chúng ta cần sử dụng các chức năng từ thư viện Xpath 1.0, Với sự kết hợp của các chức năng này, chúng ta có thể tạo XPath cụ thể hơn. Hãy thảo luận về 3 chức năng này :
- Contains
- Sibling
- Ancestor
- And OR
- Parent
- Starts with
- XPath Axes
Hãy cùng nghiên cứu chúng một cách chi tiết nhé:
Contains
sử dụng hàm contains trong Xpath , chúng ta có thể trích xuất ra tất cả các phần tử khớp với trị text trong contains
ví dụ :
Sibling
Chúng ra có thể sử dụng sibling để tìm phần tử có liên quan đến phần tử khác
ví dụ :
"//div[@class='canvas- graph']//a[@href='/accounting.html'][i[@class='icon-usd']]/following-sibling::h4"
Ancestor:
Tìm phần tử dựa vào phần tử cha, chúng ta có thể sử dụng tổ tiên của xpath
ví dụ :
SỬ DỤNG AND and OR
bằng việc sử dụng AND and OR chúng ta có thể đặt 2 điều kiện trong một biểu thức Xpath
- Trường hợp AND : cả hai điều kiện phải đúng thì mới tìm được element
- Trường hợp dùng OR : chỉ cần một trong 2 điều kiện đúng thì có thể tìm được element
ví dụ :
Xpath=//*[@type='submit' OR @name='btnReset']
Xpath=//input[@type='submit' and @name='btnLogin']
Parent
bằng việc sử dụng Parent bạn có thể tìm node cha của node hiện tại
Starts-with
Sử dụng chức năng Starts-with, bạn có thể tìm thấy phần tử có thuộc tính thay đổi động khi làm mới hoặc các hoạt động khác như nhấp, gửi, v.v.
ví dụ :
Xpath=//label[starts-with(@id,'message')]
Xpath axes
Bằng cách sử dụng XPath axes , bạn có thể tìm thấy các element động và rất phức tạp trên một trang web. XPath axes chứa một số phương thức để tìm một phần tử. Ở đây, chúng ta sẽ thảo luận về một vài phương pháp.
Following
hàm này sẽ trả về phần tử tiếp theo của phần tử hiện tại
ví dụ :
//*[starts-with(@name,'first')]//following::div
Preceding
Hàm này sẽ trả về những phần tử ở trước phần tử hiện tại
ví dụ :
Xpath= //*[@type='submit']//preceding::input
Descendant
Trả về phần tử là con cháu
ví dụ :
Xpath= //*[@id='rt-feature']//descendant::a
Link tham khảo: https://www.guru99.com/using-contains-sbiling-ancestor-to-find-element-in-selenium.html
All rights reserved