以下演示操作以該網址中的內容為例:https://learn.letskodeit.com/?_ga=2.143454972.85111248.1555037144-697706367.1554889145
一、如果元素的 ID 不唯一,或者是動態的,或者 name 以及 linktext 屬性值也不唯一, 對於這樣的元素,我們就需要考慮用 xpath 來查找元素了,然后再對元素執行操 作。
二、不管用什么方式查找元素,id、Name、Xpath、css—>都需要在頁面上查找到唯一的元素。 都應該只找到一個匹配的 node(節點),除非想要查找一批元素放集合里,然后來操作集合。
三、單右斜線“/”和雙右斜線“//”的區別:
單右斜線“/”,在 XPATH 里面任何地方的單右斜代表要查找的元素是挨着上一級節點的子節點中的一個,中間不能跳級。
雙右斜線“//”,代表查找下級任何子節點或者任何嵌套子節點中的一個,可以跳級。
四、語法
//tag[@attribute='value']
//查找下級任何子節點
tag:標簽
attribute:屬性
valuse:屬性值
五、頁面中的元素不是每一個都有靜態的唯一的id,唯一的name,唯一的linktext等,所以我們需要構建有效的xpath來進行查找。
六、操作演示---通過XPath進行定位“longin”
1、例如我們需要定位該網址頁面中的“longin”
2、通過XPath進行定位//div/div/div/div/ul/li[2]/a
li[2]表示相同平級節點中第二個li標簽
七、絕對路徑和相同路徑
1、絕對路徑:絕對路徑是指目錄下的絕對位置,直接到達目標位置,通常是從盤符開始的路徑。
以上面查找liogin為例:html/body/heard/div/div/div/div/ul/li[2]/a
只要從html開始寫xpth就表示使用的是絕對路徑,可以理解為html是網頁元素的根目錄。
2、相對路徑:由這個文件所在的路徑引起的跟其它文件的路徑關系。
以上面查找liogin為例://div[@id='navbar']/div/div/div/ul/li[2]/a