Selemium定位元素

来源:互联网 发布:集贤一中网络空间主页 编辑:程序博客网 时间:2024/06/05 06:39

普通定位

 

1.findElement(By.id(“ku”))                       id定位

2.findElement(By.name(“mxj”))                   name定位

3.findElement(By.className(“s_ipt”))              class定位

4.findElement(By.tagName(“input”))               tag定位/标签名定位

5.findElemengt(By.linkText(“新闻”))                link定位/定位文本链接(只是用a标签)

6.findElemengt(By.partialLinkText(“一个很长的”))    定位文本链接很长的,取其一部分定位

 

XPath定位

1.findElement(By.xpath(“/html/body/div/div(2)/div/div/div/from/span/input”))  绝对路径定位

2.findElement(By.xpath(“//input[@id=’ku’]”))

findElement(By.xpath(“//input[@name=’ku’]”)) 利用元素属性定位

findElement(By.xpath(“//input[@class=’ku’]”))

3.findElement(By.xpath(“//form[@id=’ku’]/span/input”))          层级属性结合定位

4.findElement(By.xpath(“//form[@id=’ku’ and @name=’su’]/span/input”))  逻辑运算符定位

 

2.xpath的模糊定位方法:

 

这段代码中的退出这个超链接,没有标准id元素,只有一个relhref,不是很好定位。用xpath的几种模糊匹配模式来定位它,主要有四种方式:

a. contains关键字,定位代码如下:

driver.findElement(By.xpath(“//a[contains(@href, ‘logout’)]”));

这句话的意思是寻找页面中href属性值包含有logout这个单词的所有a元素,由于这个退出按钮的href属性里肯定会包含logout,所以这种方式是可行的,也会经常用到。其中@后面可以跟该元素任意的属性名。

b. start-with,定位代码如下:

driver.findElement(By.xpath(“//a[starts-with(@rel, ‘nofo’)]));

这种方式一般用于知道超链接上显示的部分或全部文本信息时,可以使用。

这句的意思是寻找rel属性以nofo开头的a元素。其中@后面的rel可以替换成元素的任意其他属性

c. Text关键字,定位代码如下:

driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));

直接查找页面当中所有的退出二字,根本就不用知道它是个a元素了。这种方法也经常用于纯文字的查找

d.如果知道超链接元素的文本内容,也可以用

driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));


CSS定位

1.findElement(By.cssSelectro(“input/id/name/classname/...”))     通过属性/标签名定位

2.findElement(By.cssSelectro(“span > input”))                  通过父子关系定位

3.findElement(By.cssSelectro(“input[type=’submit’]”))            通过标签属性定位

4.findElement(By.cssSelectro(“span.s_ipt > input.s_ipt”))          结合定位