由於最新版火狐不在支持FireBug等開發工具,可以通過https://ftp.mozilla.org/pub/firefox/releases/ 下載49版本以下的火狐就可以增加Firebug等擴展了。
什么是Xpath?
XPath是XML的路徑語言,通俗一點講就是通過元素的路徑來查找到這個標簽元素。
工具
Xpath的練習建議大家安裝火狐瀏覽器后,下載插件,FireBug。
Xpath使用方法
注:默認死格式 先寫 //* 代表定位頁面下所有元素
1、Xpath支持ID、Class、Name定位功能
1)、通過ID定位
//*[@id='kw']
2)、通過Class定位
//*[@class='class_name']
3)、通過Name定位
//*[@name='name']
2、如果標簽沒有ID、Class、Name三總屬性,Xpath還支持屬性定位功能
@ 代表以屬性定位,后面可以接標簽中任意屬性
//*[@other='attribute']
3、當標簽的屬性重復時,Xpath提供了通過標簽來進行過濾
將 * 換位任意標簽名,則可根據標簽進行篩選
//input[@placeholder='用戶名']
4、當標簽頁重復時,Xpath提供了層級過濾
例如:找不到兒子,那么就先找他的爸爸,實在不行可以再找他的爺爺
1)、支持通過 / 進行層級遞進,找到符合層級關系的標簽
//form/div/input[@placeholder="用戶名"]
2)、當層級都重復時,可以通過單個層級的屬性進行定位
//form/div[@class='login-user']/input
5、一個元素它的兄弟元素跟它的標簽一樣,這時候無法通過層級定位到。因為都是一個父親生的,多胞胎兄弟。Xpath提供了索引過濾
通過索引,在List中定位屬性,與python的索引有些差別,Xpath從1開始
//select[@name='city'][1]/option[1]
6、上面幾種如果都用上了之后還重復的話,我們就可以使用Xpath提供的終極神器,邏輯運算定位。and 或 or
1)、通過and來縮小過濾的范圍,只有條件都符合時才能定位到
//select[@name='city' and @size='4' and @multiple="multiple"]
2)、or就相反了,只要這些篩選中,其中一個出現那么久匹配到了
//select[@name='city' or @size='4']
我通常把Xpath看成是屠龍刀。武林至尊,寶刀Xpath,Css不出,誰與爭鋒?