xpath定位⽅法详解
1.xpath较复杂的定位⽅法:
hit是什么意思
现在要引⽤id为“J_password”的input元素,可以像下⾯这样写:
WebElement password = driver.findElement(By.xpath("//*[@id='J_login_form']/dl/dt/input[@id='J_password']"));
其中//*[@id=’ J_login_form’]这⼀段是指在根元素下查找任意id为J_login_form的元素,此时相当于引⽤到了form元素。后⾯的路径必须按照源码的层级依次往下写。按照图所⽰代码中,我们要找的input元素包含在⼀个dt标签内,⽽dt⼜包含在dl标签内,所以中间必须写上dl和dt两层,才到input这层。当然我们也可以⽤*号省略具体的标签名称,但元素的层级关系必须体现出来,⽐如我们不能写成//* [@id='J_login_form']/input[@id='J_password'],这样肯定会报错的。
虚拟语气高考题
另外⼀种写法:WebElement password = driver.findElement(By.xpath("//*[@id='J_login_form']/*/*/input[@id='J_password']"));
2.xpath的模糊定位⽅法:
这段代码中的“退出”这个超链接,没有标准id元素,只有⼀个rel和href,不是很好定位。⽤xpath的⼏种模糊匹配模式来定位它,主要有四种⽅式:
touch my heart什么意思
a. ⽤contains关键字,定位代码如下:
driver.findElement(By.xpath(“//a[contains(@href, ‘logout’)]”));
这句话的意思是寻找页⾯中href属性值包含有logout这个单词的所有a元素,由于这个退出按钮的href属性⾥肯定会包含logout,所以这种⽅式是可⾏的,也会经常⽤到。其中@后⾯可以跟该元素任意的属性名。
b. ⽤start-with,定位代码如下:
practi怎么读
2017高考语文答案driver.findElement(By.xpath(“//a[starts-with(@rel, ‘nofo’)]));
这种⽅式⼀般⽤于知道超链接上显⽰的部分或全部⽂本信息时,可以使⽤。
这句的意思是寻找rel属性以nofo开头的a元素。其中@后⾯的rel可以替换成元素的任意其他属性
c. ⽤Text关键字,定位代码如下:
会计学就业方向driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));
typeof
直接查找页⾯当中所有的退出⼆字,根本就不⽤知道它是个a元素了。这种⽅法也经常⽤于纯⽂字的查找
d.如果知道超链接元素的⽂本内容,也可以⽤
aotudriver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));
3.XPath 关于⽹页中的动态属性的定位,例如,ASP 应⽤程序中动态⽣成 id 属性值,可以有以下四种⽅法:
a.starts-with 例⼦: input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl开始的属性值
it什么意思
用醋洗脸可以美白吗