xpath定位總結 精簡版

2022-08-31 07:39:09 字數 1801 閱讀 3094

基於html的文件目錄結構進行定位元素。

以上面的這端html**為例講解各種定位方法

1.絕對路徑:以/開頭從根節點一直找到當前節點

定位第乙個div裡面的img標籤:/html/body/div/img[@alt="div1-img1"]

其中裡面是通過標籤屬性來確定要找到元素(img標籤的alt屬性)

絕對路徑比較脆弱,變動結構後就容易變化,維護成本高,不建議使用。

2.相對路徑:以//開頭的,根據要定位的元素的特徵來定位的,div[@屬性="屬性值"]

定位第二個div裡的input標籤://input[@name="div2input"]

一般都會用相對路徑

3.索引定位:在找到乙個集合結果後,通過索引定位第幾個

定位第二個input標籤://input[2]

如果頁面中存在特徵相同多個類似元素,此方法好用

4.屬性值定位:上面已經提到過了,就是在裡面通過標籤的屬性來定位

如果頁面中的元素特徵性較強,能夠通過特徵定位,此法好用

5.使用模糊函式定位:contains(),第乙個入參是屬性,第二個是第乙個引數中的屬性值包含的內容

適用於屬性值有部分內容固定的情況,比如搜狗搜尋的超連結有可能變成

而不是此時就不用修改指令碼**也能相容變化了,此法好用

6.軸定位:用::表示,選擇當前節點的父節點(parent)、子節點(child)、祖先節點(ancestor)、子孫節點(descendant)、後節點(following)前節點(preceding)、後兄弟節點(following-sibling)、前兄弟節點(preceding-sibling)

如上圖,定位第乙個div的img://div[1]/child::img

//div[1]定位到第乙個div,它作為當前節點,找他的子節點中的img標籤

此方法適用於相對位置較為固定的元素結構,此法好用

另:如果::後面是*,則表示取所有符合條件的元素

7.文字text定位:通過html標籤的文字定位的方法

定位文字內容等於「搜狗搜尋」的a標籤://a[text()="搜狗索索"]

text()可以用.來替代://a[.="搜狗搜尋"]

常常結合contains函式://a[contains(.,"搜狗搜尋")]

此法對於有text屬性的標籤好用,像div沒有text屬性,不能用

備註:

#定位 找到元素 -- 做到唯一識別

#優先使用id

#捨棄:有下標的出現、有絕對定位的出現、id動態變化時捨棄

AsyncTask原理精簡版

asynctask有三個主要的方法 onpreexecute doinbackground string.params onpostexecute 建立asynctask物件需要重寫乙個類繼承asynctask,因為asynctask本身是抽象類 new asynctask execute para...

Sql優化精簡版

1.select語句中避免使用 盡量應該根據業務需求按欄位進行查詢 2.刪除重覆記錄 delete from tble tb where tb.id select min id from tble ble where tb.name ble.name 3.用 替換 4.盡量多使用commit 如對大...

github 使用精簡版

使用git bash上傳時,必須進入需要上傳的檔案的目錄,例如我要上傳的檔案在c 1 1 1 upload 那麼我就要進入到c 1 1 1,然後用以下命令上傳檔案 刪除 git rm cached r useless git commit m remove directory from remote...