一、Xpath定位
1、絕對路徑定位
絕對路徑定位,即使用的是一個絕對的路徑,Xpath定位,則是從HTML最外層逐層填寫,直到定位到需要的元素。
這種方式一旦頁面某個路徑有變化,元素的定位就失敗了。一般不推薦絕對路徑定位這種方式。
絕對路徑定位類似於:/html/body/div[2]/form/div[1]/table/tbody/tr[1]/td[1]
2、相對路徑定位
相對路徑定位,使用的是元素路徑的部分信息,以及元素的部分特性。
表達式是以“//”開始。
(1)通過元素唯一屬性定位。
通過id進行定位。如://*[@id="queryButton"]。
通過name進行定位。如://*[@name="payswich"]
(2)如果元素沒有唯一屬性,可根據最近的上層路徑的唯一屬性作為開始位置,逐層編寫到目標元素位置。
如://*[@id="s_menus_wrapper"]/span[1]
如://*[@id="u_sp"]/a[4]
二、驗證
1、驗證Xpath定位元素是否正確,可以在Google Chrome的console中進行驗證。
在需要定位的頁面,按F12后,切換至console列下,點擊模塊下的小眼睛,出現表達式的輸入框。語法是:$x(“your_xpath_selector”)。
2、表達式正確,元素定位正確時,會查找出該元素,如下圖:
3、未定位准確,找不到該元素,查找結果為空,如圖:
4、表達式不正確,無法正常識別情況,可能會有很多種錯誤,列舉一個例子,如圖:
這種情況造成的原因是:語法中括號里需要通過雙引號括起來,如果xpath語句中有雙引號,要改成單引號,不然只能解析到第一對雙引號的內容。這也是需要特別注意的一點。