元素定位的重要性
自动化测试的根本:
准确的操作测试对象(元素)
findElement 和 findElements 方法
1.findElement()
返回一个WebElement元素
2.findElements()
返回一个List,多个WebElement元素
八种定位方式
By.id(id):通过ID 属性查找
By.name(name):通过name属性查找
By.className(className) :通过classname属性查找
By.linkText(链接文本):通过链接文本
By.partialLinkText(部分链接文本):通过部分链接文本
By.cssSelector(Css路径):通过CSS路径
By.tagName(name):通过tagname查找
By.xpath(XPath路径):通过XPath查找
By.id(属性id值):
HTML 源码示例:
代码例子:
//通过id定位单个元素
public void findElement01(){
WebElement wbe = driver.findElement(By.id("su"));
System.out.println(wbe);
}
By.name(属性name值):
HTML 源码示例:
代码例子:
WebElement element = driver.findElement(By. name("tj_reg"));
By.className(属性class值):
HTML 源码示例:
代码例子:
WebElement element = driver.findElement(By.className( "reg"));
By. linkText (Link文本):
HTML 源码示例:
代码例子:
WebElement element = driver.findElement(By.linkText( "搜索设置" ));
By. partialLinkText(Link文本):
HTML 源码示例:
代码例子:
WebElement element = driver.findElement(By. partialLinkText( "搜索" ));
By. tagName(dom节点名):
HTML 源码示例:
代码例子:
WebElement element= driver.findElement(By. tagName( “a" ));
By. xpath(xpath路径):
代码例子:
WebElement element= driver.findElement(By. xpath( “.//*[@id='kw']" ));
By. cssSelector(Css路径):
代码例子:
WebElement element= driver.findElement(By. cssSelector(“#kw”));
补充:
findElements()同样支持这八种定位方式,只是获取的是多个元素,返回List
List elements = driver.findElements(By.id(“test”));
//通过tagName定位多个元素
public void findElements(){
List<WebElement> list = driver.findElements(By.tagName("a"));
//遍历定位的元素
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getText());
}
}