例如class,name,id等进行定位
1.id定位:
WebElement gover_search_key = driver.findElement(By.id(“gover_search_key”));//该方法可定位到网页中只要符合条件的任意标签
2.class定位:
List aboutLinks = driver.findElements(By.className(“class-title”));
for (WebElement e : aboutLinks) {
if (e.getText().contains(code3)) {
System.err.println(e.getText());
List<WebElement> Links = e.findElements(By.xpath(".//following-sibling::div[1]//div"));
for (WebElement e1 : Links) {
if (e1.getText().contains(code2)) {
System.out.println("" + e1.getText());
txtT = e1.findElement(By.xpath(".//span//a"));
}
}
}
}
3.name定位:
WebElement searchBox = driver.findElement(By.name(“btnK”));
- By.tagName()
该方法可以通过元素的标签名称来查找元素。该方法跟之前两个方法的区别是,这个方法搜索到的元素通常不止一个,所以一般建议结合使用findElements方法来使用。比如我们现在要查找页面上有多少个button,就可以用button这个tagName来进行查找,代码如下:
复制代码
public class SearchPageByTagName{
public static void main(String[] args){
WebDriver driver = new FirefoxDriver();
driver.get("http://www.forexample.com");
List<WebElement> buttons = driver.findElements(By.tagName("button"));
System.out.println(buttons.size()); //打印出button的个数
}
}
- By.linkText()
这个方法比较直接,即通过超文本链接上的文字信息来定位元素,这种方式一般专门用于定位页面上的超文本链接。通常一个超文本链接会长成这个样子:
1 About Google
我们定位这个元素时,可以使用下面的代码进行操作:
复制代码
public class SearchElementsByLinkText{
public static void main(String[] args){
WebDriver driver = new FirefoxDriver();
driver.get("http://www.forexample.com");
WebElement aboutLink = driver.findElement(By.linkText("About Google"));
aboutLink.click();
}
}