selenium自动化测试由浅入深--之页面元素的定位方法

昨天的辅助工具写了一种页面元素的定位方法Xpath,但是有一些页面元素并不见得用xpath一定能定位到或者有可能Xpath定位的元素也不见得是唯一的,今天再介绍一些常用的定位方式以及优缺点。

  webdriver 对象的 findElement 方法可以定位多个页面元素,定位到的页面元素使用webElement对象进行存储,以便在测试中继续使用。常见的定位页面元素的方法如下

  1. 使用ID定位: 举例 driver.findElment(By.id("ID值"));

  2. 使用Xpath定位:举例 driver.findElment(By.Xpath("Xpath表达式"));

  3. 使用Name定位: 举例 driver.findElment(By.name("name值"));

  4. 使用CSS定位: 举例 driver.findElment(By.cssSelector("CSS定位表达式"));

  5. 使用Class名称定位:举例 driver.findElment(By.className("页面元素的Class 属性值"))

1. 页面元素的ID查找,我们有很多工具查找页面元素的ID,例如,firebug,或者谷歌浏览器直接按F12插件,如下图所示:

 

 

 直接点击插件的箭头,定位搜索框。其中input id 就是我们要找的页面元素ID。
定位语句代码:webElement inputID = driver.findElment(By.id("kw"));ID属性在当前页面中是唯一的,所以使用ID定位,能保证其唯一性,但是缺点是很多页面元素无ID属性值,导致ID无法定位。
2.使用Name定位: 大家仔细看上图中红色框内,还有一个name的值,这个值就是我们要获取的name值,获取方法和ID一致。
定位语句代码:
webElement inputName = driver.findElment(By.name("kw"));name 属性值在当前页面具有不唯一性,因此使用name方式定位,可能会定位到多个元素,还需要进一步才能获取唯一的属性值。
3. 使用Class 名称定位:
大家看下面的图

 

 上面的红框处,就是定位的百度一下这个class名称。定位语句代码:
webElement ClassName = driver.findElment(By.className("bg s_btn"));

欢迎关注笔者的免费微 V 信 公 众 号 非机构 纯个人 名称: 王大哥自动化测试   (不仅仅是自动化哟还有性能等)扫下面

 

 

 

 

 

posted @ 2019-09-27 13:57  王大哥自动化测试  阅读(400)  评论(0编辑  收藏  举报