1. 程式人生 > > python+selenium基礎之XPATH定位

python+selenium基礎之XPATH定位

方式 沒有 基礎 元素 w3c com pytho round con

世界上最遠的距離大概就是明明看到一個頁面元素矗在那裏,但是我卻定位不到!!

selenium定位元素的方法有很多種,像是通過id、name、class_name、tag_name、link_text等等,但是這些方法局限性太大,拿id屬性來說,首先一定不會每個元素都有id屬性,其次元素的id屬性也不一定是固定不變的。所以這些方法了解一下即可,我們真正需要熟練掌握的是通過xpath和css定位,一般只要掌握一種就可以應對大部分定位工作了。

下面總結一下xpath的定位方法,結合自己練習的實例加深一下了解

一、首先需要了解一下xpath的概念和基本語法

網上關於xpath的教程比較少,可以看一下菜鳥教程和w3cschool的相關資料:http://www.runoob.com/xpath/xpath-tutorial.html、http://www.w3school.com.cn/xpath/index.asp

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

二、常用的xpath定位方法

1.利用標簽內的屬性進行定位

(1)通過id屬性

技術分享圖片

xpath = "//a[@id=‘start_handle‘]"
//a表示選取所有a元素,加上[@id=‘start_handle‘]表示選取id屬性為‘start_handle‘的a元素
(2)通過name屬性定位

技術分享圖片

xpath = "//input[@name=‘custName‘]"

概括:xpath = "//標簽名[@屬性=‘屬性值‘]"

屬性判斷條件:最常見為id,name,class等等,屬性的類別沒有特殊限制,只要能夠唯一標識一個元素即可。

當某個屬性不足以唯一區別某一個元素時,也可以采取多個條件組合的方式,如下:

xpath= "//input[@type=‘XX‘ and @name=‘XX‘]"

2.利用text()方法定位

技術分享圖片

如上所示,在【上一步】按鈕的<a></a>標簽之間有一段文本“上一步”,那麽可以通過下面這種方式來定位

xpath = "//a[text()=‘上一步‘]"

【開始辦理】按鈕可以使用如下路徑xpath = "//a[text()=‘開始辦理‘]"

3.利用contains()方法定位,也叫模糊定位

xpath = "//標簽名[contains(@屬性, ‘屬性值‘)]"

技術分享圖片

xpath3 = "//a[contains(@href, ‘basicinfo‘)]" 
取href的關鍵信息
‘basicinfo‘,這樣也可以定位到【開始辦理】按鈕


python+selenium基礎之XPATH定位