1. 程式人生 > >Selenium彩蛋篇-Xpath使用方法

Selenium彩蛋篇-Xpath使用方法

https http 進行 用戶名 mds 標簽 所有 單個 color

轉: http://www.imdsx.cn/index.php/2017/07/27/xpath/

由於最新版火狐不在支持FireBug等開發工具,可以通過https://ftp.mozilla.org/pub/firefox/releases/ 下載49版本以下的火狐就可以增加Firebug等擴展了。

什麽是Xpath?

XPath是XML的路徑語言,通俗一點講就是通過元素的路徑來查找到這個標簽元素。

工具

Xpath的練習建議大家安裝火狐瀏覽器後,下載插件,FireBug。

Xpath使用方法

註:默認死格式 先寫 //* 代表定位頁面下所有元素

1、Xpath支持ID、Class、Name定位功能

通過ID定位
 
//*[@id=kw] 通過Class定位 //*[@class=class_name] 通過Name定位 //*[@name=name]

2、如果標簽沒有ID、Class、Name三總屬性,Xpath還支持屬性定位功能

@ 代表以屬性定位,後面可以接標簽中任意屬性
 
//*[@other=attribute]

3、當標簽的屬性重復時,Xpath提供了通過標簽來進行過濾

將 * 換位任意標簽名,則可根據標簽進行篩選
 
//input[@placeholder=用戶名]

4、當標簽頁重復時,Xpath提供了層級過濾

例如:找不到兒子,那麽就先找他的爸爸,是在不行可以在找他的爺爺

支持通過 / 進行層級遞進,找到符合層級關系的標簽
 
//form/div/input[@placeholder="用戶名"]
 
當層級都重復時,可以通過單個層級的屬性進行定位
 
//form/div[@class=login-user]/input

5、一個元素它的兄弟元素跟它的標簽一樣,這時候無法通過層級定位到。因為都是一個父親生的,多胞胎兄弟。Xpath提供了索引過濾

通過索引,在List中定位屬性,與python的索引有些差別,Xpath從1開始
 
//select[@name=city][1]/option[1]

6、上面集中如果都用上了之後還重復的話,我們就可以使用Xpath提供的終極神器,邏輯運算定位。and 或 or

通過and來縮小過濾的範圍,只有條件都符合時才能定位到
 
//select[@name=city and @size=4 and @multiple="multiple"]
 
or就相反了,只要這些篩選中,其中一個出現那麽久匹配到了
 
//select[@name=city or @size=4]

我通常把Xpath看成是屠龍刀。武林至尊,寶刀Xpath,Css不出,誰與爭鋒?

Selenium彩蛋篇-Xpath使用方法