web自动化的元素定位

一.基础元素定位

1.id定位:根据元素的id定位

By.id("id")
webDriver.findElement(By.id("tab-account")).click();

2.Classname定位:根据classname定位

By.className("classname")
webDriver.findElement(By.className("elinput__inner")).sendKeys("13851998024");

3.Linktext定位:根据linktext定位

By.partialLinkText("超链接文本值")
webDriver.findElement(By.partialLinkText("地图")).click();

4.Partiallinktext定位

By.partialLinkText("超链接部分文本值")
webDriver.findElement(By.partialLinkText("图")).click();

5.name定位:不常用

6.Tagname定位:一般不唯一,几乎不用

二.css定位

1.根据Id

By.cssSelector("#id")
By.cssSelector("标签名#id")
webDriver.findElement(By.cssSelector("#tab-account")).click();

2.根据Classname

By.cssSelector(".classname")
By.cssSelector("标签名.classname")
webDriver.findElement(By.cssSelector(".comp-smscode_sendbtn")).click();

3.根据tagname

4.根据元素属性

By.cssSelector("标签名[属性名='属性值']")

(1)单属性

webDriver.findElement(By.cssSelector("input[placeholder='输入验证码']")).sendKeys("pwd");

(2)多属性

webDriver.findElement(By.cssSelector("input[type='text'][placeholder='输入验证码']")).sendKeys("pwd");

三.xpath定位

1. xpath绝对路径

从根目录开始找:html/body...

2. Xpath相对路径

//标签名[@属性名=”属性值”]

//匹配指定节点,不考虑他们的位置;

标签名:可以是具体的标签名,也可以是*通配符,表示任意标签名;

@选取属性

(1)元素标签名定位

By.xpath("//iframe")

(2)元素名+索引定位

By.xpath("//div[4]//input")

(3)属性

By.xpath("//*[@class='gloable-upload']/i")

(4)元素标签+属性

By.xpath("//input[@placeholder='请输入标题']")

(5)包含属性部分值

By.xpath("//div[contains(@class,'btn-submit')]")

(6)元素文本内容

By.xpath("//span[text()='新建']")

(7)包含元素文本部分值

By.xpath("//div[contains(text(),'登 录')]")

3.Xpath轴定位

轴名称

释义

ancestor

选取当前节点的所有祖先节点(包括父节点) --找所有的祖先

parent

选取当前节点的父节点 -- 找爸爸

preceding

选取当前节点之前的所有节点

preceding-sibling

选取当前节点之前的所有兄弟节点 --找哥哥

following

选取当前节点之后的所有节点

following-sibling

选取当前节点之后的所有兄弟节点 --找弟弟

/轴名称::节点名称[@属性=值] 

By.xpath("//*[text()='资讯平台']//preceding-sibling::div/img")

 

posted @ 2021-06-02 23:39  思佳丽  阅读(184)  评论(0)    收藏  举报