因爲最新版火狐不在支持FireBug等開發工具,能夠經過https://ftp.mozilla.org/pub/firefox/releases/ 下載49版本如下的火狐就能夠增長Firebug等擴展了。html
什麼是Xpath?python
XPath是XML的路徑語言,通俗一點講就是經過元素的路徑來查找到這個標籤元素。瀏覽器
工具工具
Xpath能夠下載火狐瀏覽器插件FireBug開發工具
用法:spa
1. /(絕對路徑,從根節點選取)
2. //(相對路徑,全部子代節點,不用考慮是否直接子節點)
3. @ 選取屬性
4. 「.」選取當前節點
5. 「..」選取當前節點的父節點firefox
使用方法:插件
注://* 表明定位頁面下全部元素,固定模式 @引用某樣屬性 id ='xxx'code
一、Xpath支持ID、Class、Name定位功能,將 * 換位任意標籤名,則可根據標籤進行篩選htm
經過ID定位 //*[@id='i1'] //div[@id='i2'] 經過Class定位 //*[@class='inner'] //div[@class='inner1'] 經過Name定位 //*[@name='name'] //input[@name='name']
class包含xxx的div
//div[contains(@class,’xxx’)]
2. 若是標籤沒有ID、Class、Name三總屬性,Xpath還支持屬性定位功能
//*[@placeholder='請輸入用戶名']
3. 當標籤頁重複時,Xpath提供了層級過濾
支持經過 / 進行層級遞進,找到符合層級關係的標籤
//input[@value=text][8] ->>第8個input的value=text
//div[@class='inner'][3]/input[@type='text']
當層級都重複時,能夠經過單個層級的屬性進行定位
//div[@class='driver'][1]/div[@class='inner'][3]/input
4. 一個元素它的兄弟元素跟它的標籤同樣,這時候沒法經過層級定位到。由於都是一個父親生的,多胞胎兄弟。Xpath提供了索引過濾
經過索引,在List中定位屬性,與python的索引有些差異,Xpath從1開始 //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']
following-sibling: 選擇當前節點以後的全部同級節點,那麼沒有加上「sibling」關鍵字的,搜索的就是之上/之下的全部節點,忽略同級概念,例如:
<div> <input id="123"> <input> </div>
要定位第二個input://input[@id=’123’]/following-sibling::input
preceding-sibling: 選取當前節點以前的全部同級節點
starts-with: 以某某開頭,例如://input[starts-with(@class,’xxx’)]
絕對路徑 html/body/div/span[2]/input[2] 中間結構變化,就失效
相對路徑 //開始,在整個html source裏找,無論在什麼位置
索引[x] //div/input[2] div下面第二個input
徹底匹配 xpath=//*[text()=」Join」]
not關鍵字 就是否認的意思
好比找一個id不爲123的input:input[not[id=’123’]]
又如找一個文本中不包含xxx字段的span://span[not(contains(text(),’xxx’))]
通配符 *
好比//span[@*=」xxx」]指定位span中任意屬性包含xxx的
好比//[@=」xxx」]指定位頁面中任意屬性保護xxx的標籤