selenium元素定位常用的8种方法
在使用selenium进行web自动化测试时,元素定位是非常重要的一个环节,下面介绍selenium元素定位中常用的8种方法。
1、通过元素的id属性定位 driver.findElement(By.id()) 示例:driver.findElement(By.id("username")) 2、通过元素的name属性定位 driver.findElement(By.name()) 示例:driver.findElement(By.name("login")) 3、通过元素的classname属性定位 driver.findElement(By.className()) 示例:driver.findElement(By.className("pass")) 4、通过链接内容定位某元素 driver.findElenment(By.linkText()) 示例:driver.findElenment(By.linkText("取消")) 5、通过标签名称定位 driver.findElement(By.tagName()) 示例:driver.findElement(By.tagName(“a”)) 6、通过链接的部分内容定位 driver.findElement(By.partialLinkText()) 示例:driver.findElement(By.partialLinkText(“跳转到“)) 7、通过css表达式定位 driver.findElenment(By.cssSelector()) 通过ID属性编写表达式:标签#idname,示例:a#top-bnt 通过class属性编写表达式:标签.classname,示例:a.top-bnt(注意:css表达式中不允许使用空格,如果有空格需使用.代替) 通过元素的其他属性编写表达式:标签[属性=‘值’],示例:button[type=submite] 同时使用两个属性定位表达式:示例:input[class=ui-input][name=password] 通过层级定位编写表达式:E>F,先定位到E元素,再定位到F元素;示例:div.user-btns>a#top-bnt 通过contains编写表达式:标签:contains(‘部分文字’),示例:a:contains(登录) 8、通过xpath表达式定位 driver.findElenment(By.xpath()) 通过元素属性编写表达式://标签[@属性=‘属性值’],示例://input[@name=username] 同时使用两个属性定位://input[@name=usernameand @class=input] 同名元素拥有某个属性而没有另一个属性://input[@name=usernameand not(@class)] 通过索引编写表达式:通过元素层级定位,示例://header/div/nav/ui/li[3](注意:xpath中序号从1开始) 通过text编写表达式:text为完全匹配,需要输入全部文字;示例://a[text()=登录] 通过string编写表达式:元素内容被子元素截断时,通过text无法定位,可以使用string;示例://a[string()=登录] 通过contains编写表达式:contains为部分匹配,只需输入部分文字;示例://a[contains(text(),登录)]或//a[contains(text(),登)] 通过子元素查找父元素:父元素不好定位,且子元素定位表达式唯一,可以通过子元素表达式/..定位父元素。示例://span[text()="全部"]/..