+2

Xpath trong selenium cho một ứng dụng Web

Nội dung của bài viết bao gồm:

  1. Khái niệm Xpath

  2. Phân loại Xpath

  3. Cấu trúc của Xpath

  4. Giải thích chi tiết các yếu tố trong cấu trúc và ví dụ

  5. Một số công nghệ trong Xpath

1. Khái niệm Xpath

XPath là đường dẫn XML. Nó là một cú pháp để tìm kiếm bất kỳ element nào trên trang web bằng cách sử dụng biểu thức XML path. XPath được sử dụng để tìm locator của bất kỳ element nào trên trang web bằng cách sử dụng cấu trúc DOM HTML.

2. Phân loại Xpath

2.1. Xpath tương đối

  • Có thể tìm kiếm element ở mọi nơi trên Web

  • Có thể bắt đầu từ bất kỳ vị trí nào của HTML

  • Viết ngắn gọn và rất linh hoạt

  • Bắt đầu bằng ký tự: "//"

2.2. Xpath tuyệt đối

  • Tìm kiếm trực tiếp từ một element

  • Bắt đầu bằng ký tự: "/"

  • Cấu trúc viết dài và không được linh hoạt

3. Cấu trúc của Xpath

//tagname[@attribute=value]

3.1. Ký hiệu "//"

//: là thể hiện bắt đầu từ node hiện tại

3.2. Element => tagname

Textbox => input

Textarea => textarea

Dropdown List (mặc định) => select > option

Dropdown list (Custom) => ul > li div > span

Button => button input

Checkbox => input

Radio button => input

Image => img

Link => a

Table => table

header (table) => th

Column (table) => td

Row (table) => tr

Text => div span label

Header => h1 - h5

Slider => input

Upload file => input

Tooltip => div

Menu => a

Icon => span

3.3. Attribute

  • Attribute là tên của Attribute

Ví dụ: Trong trường FirstName của chức năng đăng ký trong trang: http://live.demoguru99.com/index.php/customer/account/create/

Attribute name = id

3.4. Value

  • Value là giá trị của attribute

Ví dụ: Trong trường FirstName của chức năng đăng ký trong trang: http://live.demoguru99.com/index.php/customer/account/create/

Attribute value = firstname

=> Xpath: //tagname[@attribute=value]

Trong ví dụ này sẽ quy đổi ra thành như sau:

//input[@id='firstname']

4. Một số công nghệ trong Xpath

4.1. Khi Attribute value là duy nhất

  • Dùng format: Tagname & Attribute & Value

//tagname[@attribute=value]

  1. //input[@id='email']
  2. //input[@title='title="Email Address']
  3. //input[@name='login[username]']

4.2. Khi không thể định danh được element bằng thẻ và attribute của nó

4.2.1. Lấy từ đời cha trở xuống (Parent node)

  • Dùng cấu trúc:
//parent-tagname[@attribute='value']//child-tagname[@attribute='value']

Ví dụ:

Dùng Tagname và attribute chúng ta không tìm được sự duy nhất của element:

Khi này chúng ta cẫn phải lấy thêm điều kiện từ đời cha trở xuống

4.2.2. Lấy từ đời cha trở lên

4.3. Lấy tuyệt đối

4.3.1. Text()

text()=: Chứa giá trị tuyệt đối trong chuỗi

Ví dụ:

4.3.2.@attribute()

@attribute()=: chứa giá trị tuyệt đối trong attribute

4.4. Lấy tương đối

contains(text()),attribute (value)

contains(@attribute,value)

KẾT LUẬN

Nội dung bài viết giúp các bạn có thể bắt được element bằng nhiều cách khác nhau trong trường hợp cụ thể, bài sau mình sẽ viết thêm bốn cách bắt element bằng Xpath và giới thiệu về CSS trong selenium tới các bạn.

Cảm ơn các bạn đã đọc bài viết!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí