1. 程式人生 > >Selenium學習之==>Xpath使用方法

Selenium學習之==>Xpath使用方法

方法 縮小 python head 爸爸 火狐 如果 fire 通過

一、什麽是Xpath

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

工具

Xpath的練習建議大家安裝火狐瀏覽器後,下載插件,FireBug。由於最新版火狐不再支持FireBug等開發工具,可以通過https://ftp.mozilla.org/pub/firefox/releases/ 下載49版本以下的火狐就可以增加Firebug等擴展了。

二、Xpath的使用方法

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

1、Xpath通過標簽的屬性定位

 1 @代表以屬性定位,後面可以接標簽中任意屬性
 2 通過ID定位
 3 //*[@id=‘i1‘]
 4 
 5 通過Class定位
6 //*[@class=‘pg-header‘] 7 8 通過Name定位 9 //*[@name=‘username‘] 10 11 通過Type定位 12 //*[@ type=‘button‘]

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

1 獲取所有input標簽元素
2 //input
3 
4 獲取placeholder=‘用戶名‘的input標簽元素
5 //input[@placeholder=‘用戶名‘]   這種方式比//*要快
6 
7 當出現重復時可以使用下標定位,從1開始
8 //div[@class=‘inner‘][2] 

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

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

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

4、一個元素它的兄弟元素跟它的標簽一樣,這時候無法通過層級定位到。Xpath提供了索引過濾

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

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

通過and來縮小過濾的範圍,只有條件都符合時才能定位到
//select[@name=‘city‘ and @size=‘4‘ and @multiple="multiple"]

or就相反了,只要這些篩選中,其中一個出現那麽久匹配到了
//select[@name=‘city‘ or @size=‘4‘]

Selenium學習之==>Xpath使用方法