selenium之定位页面元素

来源:互联网 发布:代销下单与传淘宝 编辑:程序博客网 时间:2024/05/13 16:40

从学习至今,加了大大小小的学习交流群,自己在编写代码运行时,定位页面元素也是很头疼的问题,但也是最好解决的一个问题。

总结一点:遇见定位错误的,就使用xpath进行定位。


在学习webdriver中,定位页面元素的几种类型:

1.By.id()   

2.By.name()    当当前页面元素较少时,可以使用此定位方式。

比如登陆页面的定位

                driver.findElement(By.name("UserName")).sendKeys("admin");driver.findElement(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() 一般使用与页面元素挂钩的超文本链接。比如登陆按钮等





0 0
原创粉丝点击