Một vài “trick” khi sử dụng xpath và css selector trong selenium

bởi vậy bọn họ thấy bên trên trình chuẩn y đang hiển thị y nguyên ổn tài liệu gốc. Vậy làm cho cách như thế nào để chúng ta có thể vận động bên trên các bộ phận của tài liệu XML để trích ra phần lớn dữ liệu nhưng họ quan trọng.

Bạn đang xem: Một vài “trick” khi sử dụng xpath và css selector trong selenium

Để thỏa mãn nhu cầu điều này tín đồ ta kiến thiết ra một ngôn từ XPath. XPath có một sứ mệnh đặc biệt vào vấn đề Bàn bạc tài liệu giữa các máy vi tính xuất xắc giữa các chương trình ứng dụng bởi vì nó mang đến họ tuyển lựa những tài liệu mà ta mong muốn.

XPath coi XML nhỏng một cây, với ví dụ trên sẽ tiến hành trình diễn dưới dạng cây sau:

*

Bây tiếng họ hãy học tập bí quyết trải qua các nút ít trong tài liệu XML.

Đường dẫn giỏi đối

Nếu đường dẫn XPath ban đầu vì chưng vết / thì gồm nghĩa đây là một băng thông tuyệt đối hoàn hảo bắt đầu từ thành phần cội.

Trong hình kết cấu câynghỉ ngơi bên trên, hiện nay chúng ta ước ao chọn nút Order ta viết như sau:


Cú pháp nguyên: /child::Order

Cú pháp tắt: /Order


Đi ra nhánh bé Custumer bằng XPath nlỗi sau:


Cú pháp nguyên: /child::Order/child::Custumer

Cú pháp tắt: /Order/Custumer


Trong trường đúng theo mong mỏi đi cho thuộc tính của nút thì họ rất cần phải chứng tỏ trường đoản cú khóa Attribute vào cú pháp nguyên ổn hoặc
trong cú pháp tắt.

Xem thêm: Đâu Là Tên Một Nhiệm Vụ Ẩn Tại Đồng Linh Thạch? Hiểm Họa Từ “Thử Thách Cá Voi Xanh”

Để rước thuộc tính OrderNo của nút ít Order ta cần sử dụng cú pháp XPath như sau:


Cú pháp nguyên: /child::Order/Attribute::OrderNo

Cú pháp tắt: /Order/
OrderNo


Đường dẫn tương đối

khi họ ước ao trích một trong những phần tử như thế nào đó mà chúng ta chỉ biết thương hiệu của bộ phận này chứ đọng bọn họ phân vân là bộ phận này ở ở chỗ làm sao thì bạn có thể cần sử dụng băng thông kha khá để làm điểu này. Chúng ta cần sử dụng vết // để chỉ cho trình phân tích biết đó là đường truyền kha khá.

Ví dụ, nhằm trích những thành phần có tên là Product họ viết nhỏng sau:


Cú pháp nguyên: //child::Product

Cú pháp viết tắt: //Product


khi họ viết như thế này thì khi đi qua trình so sánh đang tróc nã tìm tới các bộ phận mang tên là Product.

Chọn những thành phần bởi cam kết trường đoản cú đại diện

Để lựa chọn tất cả các bộ phận nhỏ của một phần tử như thế nào kia chúng ta sử dụng ký từ thay mặt *.

Xem thêm: Diễn Viên Nam Lee Min Ho Sinh Năm Bao Nhiêu ? Diễn Viên/Người Mẫu Lee Min Ho Sinh Năm Bao Nhiêu

lấy ví dụ như, để mang toàn bộ những phần tử bé của phần tử Order ta viết như sau:


Cú pháp nguyên: /child::Order/child::*

Cú pháp tắt: /Order/*


Chọn các phần tử theo điều kiện

Để lấy những phần tử theo một điều kiện làm sao kia chúng ta dùng vệt ngoặc vuông(< >).

ví dụ như, để lấy gần như bộ phận Product gồm thuộc tính UnitPrice > 70 ta viết như sau:

Cú pháp nguyên:


//child::Product70>


Cú pháp tắt:


//Product<
UnitPrice>70>


lấy ví dụ như, để mang đầy đủ phần tử Item gồm bộ phận nhỏ là Product cùng bao gồm ở trong tính ProductID=1 bọn họ viết như sau:

Cú pháp nguyên:


//child::Item


Cú pháp tắt:


//ItemProductID=1>


Một số hàm thường dùng

Tên hàm

Ý nghĩa

Ví dụ

count()

Hàm đem tổng cộng nút con của một

//Item

Chọn tất cả các phần tử Item bao gồm số phầntử bé là 2

name()

Lấy thương hiệu của phần tử

/Order/*

Chọn toàn bộ những bộ phận con của Ordermang tên là Item

not()

Hàm lấp định

//Item/**)>

Chọn toàn bộ các thành phần bé của Itemko cất thuộc tính nào

normalize-space(str)

Hàm quăng quật khoảng chừng trắng

//Item/*ProductID)=’abc’>

Chọn tất cả các thành phần bé của Item cóở trong tính ProductID=abc (ko phânbiệt khoảng trắng)

starts-with(str,substr)

Hàm đánh giá xem chuỗi str cóđựng chuỗi substr (tính tự địa điểm đầutiên) tuyệt không

//item/*

Chọn tất cả những phần tử con của Item cóthương hiệu ban đầu bởi vì cam kết từ P

contains(str,substr)

Kiểm tra một chuỗi str bao gồm chứachuổi con substr xuất xắc không

//item/*

Chọn tất cả những thành phần con của phầntử Item cơ mà thương hiệu của các thành phần bé nàycó chđọng ký kết tự u

string-length(str)Hàm mang chiều lâu năm của một chuỗi

//Item/*

Chọn tất cả những phần tử bé của Itemcơ mà độ dài thương hiệu của các bộ phận nhỏ này là 5

position()Cho biết địa chỉ hiện nay của phần tử

//Item

Chọn bộ phận Item tất cả vị trí là 5

floor()Lấy cực hiếm nhỏ độc nhất vô nhị ngay gần với giá trịchỉ định
ceiling()Lấy quý giá lớn nhất ngay sát với mức giá trịchỉ định
last()Vị trí nút cuối cùng

//Item

Chọn bộ phận Item cuối cùng

Một số toán thù tử thường xuyên dùng


Tên tân oán tử

Chức năng

Ví dụ

|

Tân oán tử hoặc dùng làm chọn ra mộtlần các phần tử bao gồm ĐK khác nhau

//Item/*

Chọn toàn bộ những phần tử là con của Itemtất cả mang tên bước đầu vày ký tự Phường hoặc Q

descendant

Chọn bộ phận bé của bộ phận chỉ định

/Order /Item/Product/descendant::*

Chọn toàn bộ những phần tử là bé của/Order/Item/Product

ancestor

Chọn bộ phận cấp cho trên

/Order/Item/Product/ancestor::*

chọn 2 thành phần Item và phần tử Order

following-sibling

Chọn phần tử thuộc cấp cho kế tiếp

/Order/OrderDate/following-sibling::*

lựa chọn các bộ phận Custumer và nhị phầntử Item theo sau với cùng cấp với phầntử OrderDate

preceding-sibling

Chọn thành phần cùng cấp cho trước đó

/Order/Custumer/preceding-sibling::*

chọn phần tử OrderDate

followingChọn thành phần theo sau thành phần chỉ định

/Order/OrderDate/following::*

chọn bộ phận Custumer với 2 phần tửItem cùng những bộ phận nhỏ của Item

precedingChọn các bộ phận đứng trước thành phần chỉ định

/Order/Custumer/preceding::*

lựa chọn toàn bộ những thành phần đi trước phần tửCustumer

descendant-or-selfChọn thành phần cung cấp bên dưới và thành phần chỉ định

/Order/Item/descendant-or-self::*

Chọn toàn bộ những thành phần Item với cácthành phần con của phần tử này

ancestor-or-selfChọn bộ phận cấp cho bên trên cùng phần tử

/Order/Item/product/ancestor-or-self::*

chọn 2 phân tử hàng hóa, 2 thành phần Itemcùng thành phần Order

Một số ví dụ

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

Nếu các bạn tất cả điều vướng mắc, các bạn hãy comment cho realchampionshipwrestling.com sẽ được câu trả lời. Bài viết này được chia sẻ vì LongDT. Nếu bạn muốn chia sẻ nội dung bài viết, bạn hãy Đăng ký kết làm thành viên! « Prev
Next » Đăng ký kết học test Đăng ký khóa huấn luyện và đào tạo

Chuyên mục: ĐỜI SỐNG