您的位置:首页 > 其它

selenium使用Xpath定位的几种方法

2017-06-01 11:15 656 查看
第一种方法:通过绝对路径做定位(相信大家不会使用这种方式)

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐