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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值