遇见定位错误的,就使用xpath进行定位。
在学习webdriver中,定位页面元素的几种类型:
1.By.id()
2.By.name() 当当前页面元素较少时,可以使用此定位方式。
比如登陆页面的定位
- driver.findElement(By.name("UserName")).sendKeys("admin");
- ment(By.name("Password")).sendKeys("123456");
注:ID、name类型的定位方式是首要选择的方式,但如果页面上有几个相同的ID或name,就会取获取到的第一个元素值。
3.By.className()
4.CSS 暂时不添加,后续改进
5.By.Xpath() 平常用得最多的定位方式非他莫属了,简单粗暴。检查元素----ctrl+c---Ctrl+V,搞定。但很多时候用XPath定位也会出现问题。因为通过浏览器查找的xpath是绝对路径,一旦页面结构发生变化,该路径也随之失效。
绝对路径是以/开头,相对路径以//开头
下拉列表的一些定位方式:
- driver.findElement(By.xpath("//*[@id='sidebar-collapse']/i")).click();
代码说明:需要删除新增的数据,但弹出的删除框的确定按钮id值是随机改变的,name值与其他按钮重复。这个时候可通过这个按钮的其他属性进行定位
- driver.findElement(By.xpath("//button[@type='button' and @i-id='ok']"));
- </pre><pre name="code" class="html">
- <pre name="code" class="html">6.By.linktext() 一般使用与页面元素挂钩的超文本链接。比如登陆按钮等
转载。 https://blog.csdn.net/mine333/article/details/52771796