9 XPath 學習記錄 節點

2021-08-09 04:10:17 字數 2834 閱讀 8683

先理一下思路:

1、先寫了一些關於selenium 環境搭建,元素定位,基本控制項處理的文章,發現我們能自動化的處理一些網頁操作,很是欣慰,但是遇到的問題更多,比如說如何手寫元素的xpath路徑?想要弄明白xpath,我們需要掌握點xml的知識;了解xml,我們需要了解點html的基礎。so...

2、我們學習了html 基礎,更清晰的了解乙個web頁面及元素是怎麼產生的;

3、學習xml 了解網頁資料內容儲存的形式;

4、接下來終於可以學習的 xpath 了。

一、xpath 術語

1、節點

在 xpath 中,有七種型別的節點:元素、屬性、文字、命名空間、處理指令、注釋以及文件(根)節點。xml 文件是被作為節點樹來對待的。樹的根被稱為文件節點或者根節點。

<bookstore>

<book>

<titlelang=

"en">harry potter

title>

<author>j k. rowling

author>

<year>2005

year>

book>

bookstore>

上面的xml 文件中,

、、、、都是元素(元素節點),其中是根節點(文件節點)

元素有個屬性 lang,有個文字為harry potter

2、節點的關係

(1)父(parent)

根節點是無父節點,其它元素都有乙個父節點。

在上面的例子中,book 元素是 title、author、year 以及 price 元素的父;bookstore 是 book的父

(2)子(children)

元素節點可有零個、乙個或多個子,book元素有4個子節點title、author、year 以及 price(注釋掉了)

(3)同胞(sibling)

擁有相同的父的節點

在上面的例子中,title、author、year 以及 price 元素都是同胞,也叫兄弟節點

(4)先輩(ancestor)

某節點的父、父的父,等等。

在上面的例子中,title 元素的先輩是 book 元素和 bookstore 元素

(5)後代(descendant)

某個節點的子,子的子,等等。

在上面的例子中,bookstore 的後代是 book、title、author、year 以及 price 元素。

二、xpath 語法

xpath 使用路徑表示式來選取 xml 文件中的節點或節點集。節點是通過沿著路徑 (path) 或者步 (steps) 來選取的。

xml例項:

<bookstore>

<book>

<titlelang=

"eng">harry potter

title>

<price>29.99

price>

book>

<book>

<titlelang=

"eng">learning xml

title>

<price>39.95

price>

book>

bookstore>

1、選取節點

xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。 下面列出了有用的路徑表示式:

示例:

2、謂語(predicates)

謂語用來查詢某個特定的節點或者包含某個指定的值的節點。

謂語被嵌在方括號中。

在下面的**中,我們列出了帶有謂語的一些路徑表示式,以及表示式的結果:

3、選取未知節點

xpath 萬用字元可用來選取未知的 xml 元素。

4、選取若干路徑

通過在路徑表示式中使用"|"運算子,您可以選取若干個路徑。

在下面的**中,我們列出了一些路徑表示式,以及這些表示式的結果:

小結:

上面我們介紹了如何通過xpath 來取xml檔案的元素,但是口說無憑,下一章節,我們將通過xpath來取html頁面元素,然後列印出來,以證明我並沒有騙你。

乾貨 xpath語法學習記錄

注 若是含有中文,則 keyword u 中文 xpath body div contains class,s keyword 或 xpath u body div contains class,中文 問題1.若想獲取乙個節點下的所有內容,但其內容包含在當前節點下的不同子節點中 解決方案 xpath...

藍橋杯學習記錄9

問題描述 有n 2 n 20 塊晶元,有好有壞,已知好晶元比壞晶元多。每個晶元都能用來測試其他晶元。用好晶元測試其他晶元時,能正確給出被測試晶元是好還是壞。而用壞晶元測試其他晶元時,會隨機給出好或是壞的測試結果 即此結果與被測試晶元實際的好壞無關 給出所有晶元的測試結果,問哪些晶元是好晶元。輸入格式...

c 入門程式設計學習記錄9

20.10.19,學習c 的第九天 乙個空物件占用乙個位元組的空間。只有非靜態成員變數才屬於類的物件上。this指標指向被呼叫的成員函式所屬的物件 this指標的用途 在成員行為中使用成員屬性,預設是 this menber 空指標訪問成員函式 class person void showperso...