自动化中,最重要的事情就是元素定位,selenium webdriver提供几种元素定位,
如何定位
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回元素句柄来定位元素
findElement() 方法返回一个元素, 如果没有找到,会抛出一个异常 NoElementFindException()
findElements()方法返回多个元素, 如果没有找到,会返回空数组, 不会抛出异常
如何选择 定位方法
策略是, 选择简单,稳定的定位方法。
1. 当页面元素有id属性的时候, 尽量使用id来定位。 没有的话,再选择其他定位方法
2. cssSelector 执行速度快, 推荐使用
3. 定位超链接的时候,可以考虑linkText或partialLinkText: 但是要注意的是 , 文本经常发生改变, 所以不推荐用
3. xpath 功能最强悍。 当时执行速度慢,因为需要查找整个DOM, 所以尽量少用。 实在没有办法的时候,才使用xpath
常用的定位页面元素方法如下, 按推荐排序
定位方法 |
Java语言实现实例 |
id 定位 |
driver.findElement(By.id(“id的值”)); |
name定位 |
driver.findElement(By.name(“name的值”)); |
链接的全部文字定位 |
driver.findElement(By.linkText(“链接的全部文字”)); |
链接的部分文字定位 |
driver.findElement(By.partialLinkText(“链接的部分文字”)); |
css 方式定位 |
driver.findElement(By.cssSelector(“css表达式”)); |
xpath 方式定位 |
driver.findElement(By.xpath(“xpath表达式”)); |
Class 名称定位 |
driver.findElement(By.className(“class属性”)); |
TagName 标签名称定位 |
driver.findElement(By.tagName(“标签名称”)); |
Jquery方式 |
Js.executeScript(“return jQuery.find(“jquery表达式”)”) |