Xác định phần tử Web theo Xpath

Một phần của tài liệu Nghiên cứu và ứng dụng công cụ kiểm thử tự động selenium trong kiểm thử phần mềm (Trang 28 - 30)

● Xpath là việc sử dụng những biểu thức để duyệt các node trong XML/HTML.

● XPath là phương thức được sử dụng nhiều nhất

● Dưới đây là ví dụ cấu trúc HTML của một trang web và cách dùng Xpath để duyệt các phần tử trên trang web đó

● Absolute XPath (XPath tuyệt đối)

○ Bắt đầu với node gốc hoặc dấu „/‟ ○ Ưu điểm: tìm element nhanh

○ Nhược điểm: nếu có sự thay đổi nào giữa các node à xpath sẽ sai ○ Ví dụ: html/body/div/form/select/option

○ Khi có thêm một tag giữa body và divà xpath sẽ không tìm được element

html/body/table/div/form/select/option ● Relative XPath (XPath tương đối)

○ Có thể bắt đầu ở bất kỳ node nào với dấu „//‟ ○ Ưu điểm: xpath ngắn

○ Nhược điểm: tìm element lâu hơn xpath tuyệt đối ○ Ví dụ: //select/option

● Kết hợp giữa xpath tuyệt đối, tương đối

○ Có thể kết hợp giữa xpath tuyệt đối và tương đối ○ Ví dụ: html//table/tbody/tr/th

Xpath tuyệt đối html/body/div/form/select/option

Xpath tương đối //select/option

Kết hợp html/body//select/option

● Một số cú pháp khác trong Xpath

Mục đích Cú pháp Ví dụ

attribute Lấy element theo thuộc tính

tagName[@attribute=„val ue‟]

input[@id='searchIn put']

contains Lấy element với thuộc tính chứa chuỗi bất kỳ

tagName[contains(@attrib ute,„value‟)]

input[contains(@id, 'searchInput')]

starts-with Lấy element với thuộc tính bắt đầu bằng chuỗi bất kỳ tagName[starts- with(@attribute,„value‟)] input[starts- with(@id, 's')]

and Kết hợp toán tử AND với nhiều điều kiện để lấy element tag[@attribute=„value' and @attribute=„value'] input[@type='search' and @id='searchInput'] or (|) Kết hợp toán tử OR

với nhiều điều kiện để lấy element tag[@attribute=„value' or @attribute=„value'] tag[@attribute=„value' | @attribute=„value'] input[@type='search' or @type='submit'] input[@type='search' | @type='submit'] position() Lấy element theo tag[index] option[1]

(index) index tag[position()=index] option[position()=1] text() Lấy element theo

text

tag[text()=„text'] option[text()='Englis h']

* Lấy tất cả element (không phân biệt tagname)

*[@attribute=„value‟] *[@id='searchInput'] (adsbygoogle = window.adsbygoogle || []).push({});

. Lấy element của

chính nó

html/body/div/form/input/ .

html/body/div/form/i nput/.

.. Lấy element cha html/body/div/form/input/ ..

html/body/div/form/i nput/..

position() (index)

Lấy element theo index

tag[index]

tag[position()=index]

option[1]

option[position()=1]

Một phần của tài liệu Nghiên cứu và ứng dụng công cụ kiểm thử tự động selenium trong kiểm thử phần mềm (Trang 28 - 30)