微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium xpath定位总结

  xpath有两种表示方法绝对路径和相对路径,绝对路径是指从根开始,以/开始,如/html/body/div,相对路径是指在一个路径下,另外的路径以这个路径作为参照,以//开始。测试时,一般使用相对路径查找元素(安装CronPath插件,可以查找xpath路径)。

  xpath基本用法

  百度搜索页面为例。

  1、属性定位 表示方法://标签名[@属性名=属性值] ,通过单一的属性即可查找到元素。如:查找输入文本框,//input[@id='kw']

  

  2、and组合属性定位 表示方法://标签名[@属性名1=属性值 and 属性名2=属性值],当单一属性无法定位唯一元素时,可以组合多个属性进行查找。如:查找输入文本框,//input[@name='wd' and @class=s_ipt]

  

  3、通过父元素找子元素 表示方法: //父元素/子元素,当查找的元素没有特征属性时,其父元素有特征属性时,可以通过其父元素往下查找。如:查找输入文本框,//span[@id='s_kw_wrap']/input

  

  4、通过祖先元素找子孙元素 表示方法://祖先元素//子孙元素,当查找的元素没有特征属性时,其祖先元素有特征属性时,可以通过其祖先元素往下查找。如:查找输入文本框,//span[@id='s_kw_wrap']//input

  

  5、通过子元素找父元素  表示方法://子元素/..,当查找的元素没有特征属性,其子元素有特征属性时,可以通过其子元素往上查找。如:查找输入文本框的父元素,//input[@id='kw']/..

  

   6、通过文本定位,表示方法://标签名[text()=文本内容](text前不需要加@符号),经常和contains()组合使用。如,定位【新闻】对应的a标签,//a[text()='新闻']

  

   7、通过contains模糊匹配定位,表示方法://标签名[contains(属性或文本, 内容)]。如,定位页面中的【设置】元素,//span[contains(@name, 'tj')]

  

@H_502_66@

  8、通过索引[]定位(注意:1、加括号;2、索引从1开始),如,定位【学术】对应的a标签,(//a[@class='mnav c-font-normal c-color-t'])[7]

  

  9、通过starts-with,表达式://标签名[starts-with(属性或文本, 内容)],与contains()用法类似。如:定位【设置】元素,//span[starts-with(@name, 'tj')](表示span元素有name属性,且name属性值以tj开始)

   

  10、*通配符:表示任意的(标签名称或者属性名称),如:定位任意的属性值=s-top-left的div元素

  

   常用的轴运算

  表示方法://轴关系::标签名称

  ancestor:当前元素的所有祖先元素(父、祖父等),如:通过【设置】查找其父级div元素,//span[@id='s-usersetting-top']//ancestor::div[@id='u1']

  

  following-sibling:当前元素之后的所有同级元素,如:查找【直播】之后的同级元素,//a[contains(text(), '直播')]//following-sibling::a

  

  preceding-sibling:当前元素之前的所有同级元素,如:查找【直播】之前的同级元素,//a[contains(text(), '直播')]//preceding-sibling::a

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐