1. 程式人生 > >selenium定位頁面元素時xpath定位技巧(一)

selenium定位頁面元素時xpath定位技巧(一)

對於定位頁面元素,xpath是最強大的一種方式,優點是穩定而且萬能。但是能不能用好又是另外一回事,用不好的話實在是一個坑。廢話不多說,進入主題:


如上圖,我們要定位“_省公司”前面的摺疊按鈕,xpath怎麼寫?很明顯,這裡的id='_easyui_tree_1'並不是一個很放心的固定值,tag name就更離譜了。可能id='ltree'還能靠譜點,但是能不用id就不用id(除了登入頁面),事實上id是一個很好的定位利器,但是很多場景下都用不到,那麼培養使用xpath的習慣和能力就非常重要,我們來寫下這個例子:

逐步分析:

1.使用xpath,因為定位的是“_省公司”前面的摺疊符,那麼“_省公司”自己都逃不了干係,以“_省公司”為出發點,xpath=.//span[text()="_省公司"]

2.需要用到軸,摺疊符是前兄弟,/preceding:siblind::span

3.前面有2個兄弟?哈哈,從“_省公司”開始往上計數,我們要找的是最上面的span,中間那個是資料夾那個的圖示。第二個兄弟:[2]

組合起來:

xpath = .//span[text()="_省公司"]/preceding-sibling::span[2]

當然這裡也可以直接定位到“_省公司”的父親<div id="_easyui_tree_1" class="tree-node">,然後再往下取第一個span孩子:.//span[text()="_省公司"]/parent::div/span[1]

再看一組:


如果不想數數,就可以直接用preceding-sibling了。

暫時到這,有新進展,隨時更新!