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")

浙公网安备 33010602011771号