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