# xpath 使用路徑表達式來比對xml文檔或html文檔中的節點或節點集,
# 這個路徑表達式,和我們常見的檔案夾路徑有點像
# xpath 的标準文法 //tagname[@屬性=''] # @後邊可以跟任意屬性,隻要這個元素有就可以
# //a[@href='/checkwork/manage']/i[@class='fa fa-tasks']
# 上述表達式了解為:
# 具備class屬性且class屬性值為fa fa-tasks
# 并且父元素是a标簽,且父元素具有 href 屬性,并且父元素的href屬性值為/checkwork/manage
"""
xpath中的單斜杠和雙斜杠
/ 通常用在絕對路徑,也表示父子關系
// 通常用作相對路徑,可以從文檔的任意位置開始作為起點,也表示後代關系
"""
# xpath的屬性定位表達式
# //p[@id] 比對所有具備id屬性的p标簽
# //p[@id='abc'] 比對所有id屬性值為abc的p标簽
# //p[@id='abc' and @name='xyz'] xpath 允許我們使用and或or連接配接多個屬性
# //*[@class='yu'] 可以用星号代替tagname,代表通配符,這個表達式比對所有class屬性值為yu的元素,不論元素标簽是什麼
# xpath 允許我們使用文本進行定位(css不支援
# //*[text()='打 印'] 使用的文本就是标簽對之間的内容
# 軸定位
# //*[text()='打 印']/ancestor::span
# ancestor 選取目前節點的所有先輩元素,并且要指定先輩元素的類型
# //*[text()='打 印']/ancestor-or-self::div
# 選取目前節點所有的先輩元素,或者目前節點本身
# //*[text()='打 印']/preceding-sibling::span
# preceding-sibling 選取目前節點之前的所有同級節點
# //*[text()='打 印']/descendant::p
# descendant 選取目前節點的所有後代元素
# //*[text()='打 印']/descendant-or-self::span
# descendant-or-self 選取目前節點的所有後代元素,或者目前節點本身
# 在 xpath中,.代表目前路徑,.. 代表上層路徑