1. 程式人生 > >selenium使用Xpath定位的幾種方法

selenium使用Xpath定位的幾種方法

第一種方法:通過絕對路徑做定位(相信大家不會使用這種方式)

By.xpath("html/body/div/form/input")

By.xpath("//input")

第三種方法:通過元素索引定位

By.xpath("//input[4]")

第四種方法:使用xpath屬性定位(結合第2、第3中方法可以使用)

By.xpath("//input[@id='kw1']")

By.xpath("//input[@type='name' and @name='kw1']")

布林值寫法
如果input標籤中 id不是唯一的,type也不是唯一的,但在該頁面中包含該id和type的只有這個元素時,那麼我們可以用組合的方式定位 
xpath=//*[@id=”kw” and @type=”text”] 


當然還有or 或,慎用
xpath=//*[@id=”kw” or @type=”text”]

第五種方法:使用部分屬性值匹配(最強大的方法)

By.xpath("//input[start-with(@id,'nice')
By.xpath("//input[ends-with(@id,'很漂亮')
By.xpath("//input[contains(@id,'那麼美')]")

第六種方法:跳級

如果需要定位的元素在該頁面不是唯一,但在某個容器內是唯一的,當然那個容器必須要有唯一的標誌; 
跳級的話要用兩個// 
那麼可以這樣表示:xpath=//div[@id=”wrapper”]//input [@id=”kw”] 
注意:該方法要保證在某容器內該元素是唯一的。


第七種方法: 找父級
如果自己沒有唯一的標誌,那麼就找自己的上級(父級),或者上級的上級,以此類推。 
找父級:xpath=//span[@class=’s_ipt_w’]/input 
找父級的父級:xpath=//form[@id=”form”]/span[1]/input


//*[contains(@onclick, 'x64_3.01.3730.spkg')and @name='delete']

在切換ifame的時候,有時iframe是含有id的,就可以直接定位使用

但是當iframe沒有id資訊的時候,如下圖,


select frame    Xpath=//*[contains(@src, 'sysmanage/systemupgrade.action')]


轉載:http://blog.csdn.net/duff2016/article/details/54572718