4、Selenium -- XPath定位

XPath 是一門(mén)在 XML 文檔中查找信息的語(yǔ)言。

一、常用工具


二、XML實(shí)例文檔

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book>
      <title lang="eng">Harry Potter</title>
      <price>29.99</price>
    </book>
    <book>
      <title lang="eng">Learning XML</title>
      <price>39.95</price>
    </book>
</bookstore>

三、XPath 語(yǔ)法

測(cè)試DOM文檔實(shí)例:

  1. 選取節(jié)點(diǎn):
表達(dá)式 描述
nodename 選取此節(jié)點(diǎn)中的所有子節(jié)點(diǎn)
/ 從根節(jié)點(diǎn)選取
// 不考慮位置,可以從任意節(jié)點(diǎn)選取
. 選取當(dāng)前節(jié)點(diǎn)
.. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)
@ 選取屬性


  1. 謂語(yǔ)(Predicates):

    謂語(yǔ)被嵌在方括號(hào)中,用來(lái)查找某個(gè)特定的節(jié)點(diǎn)或者包含某個(gè)指定的值的節(jié)點(diǎn);

    用法示例:
路徑表達(dá)式 結(jié)果
/bookstore/book[1] 選取bookstore下的第一個(gè)中的book元素
/bookstore/book[last()] 選取bookstore下的最后一個(gè)中的book元素
/bookstore/book[position()<3] 選取bookstore下的最前面兩個(gè)book元素
//title[@lang] 所有包含屬性lang的title元素
/bookstore/book[price>35.00] 選取bookstore下, price>35.00的book元素
//title[@lang] 所有包含屬性lang的title元素
/bookstore/book[price>35.00]/title 選取bookstore下, price>35.00的book元素下的title


  1. 通配符: *

    XPath通配符可用來(lái)選取未知的XML元素。
通配符 描述
* 匹配任何元素的節(jié)點(diǎn)
@* 匹配任何屬性節(jié)點(diǎn)
node() 匹配任何類(lèi)型的節(jié)點(diǎn)

用法示例:

路徑表達(dá)式 結(jié)果
/bookstore/* 選取bookstore下的第一個(gè)中的book元素
//* 選取文檔中的所有元素
//title[@*] 選取所有包含屬性的title元素


  1. 管道符: |

    XPath管道符可用來(lái)選取若干個(gè)路徑。
路徑表達(dá)式 結(jié)果
//book/title | //book/price 選取book下的所有title和price元素
//title | //price 選取文檔中的所有元素title和price元素
/bookstore/book/title | // price 選取bookstore下的book下的title元素和文檔中所有的price元素

四、XPath 運(yùn)算符

運(yùn)算符 描述 實(shí)例
| 計(jì)算兩個(gè)節(jié)點(diǎn)集 //book | //cd
+ 加法 6 + 4
- 減法 6 - 4
* 乘法 6 * 4
div 除法 6 div 4
= 等于 price = 30.0
!= 不等于 price != 30.0
< 小于 price < 30.0
<= 小于等于 price <= 30.0
> 大于 price > 30.0
>= 大于等于 price >= 30.0
or price >= 30.0 or price <= 60.0
and price >= 30.0 and price <= 60.0
mod 取余 5 mod 2





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容