Selenium定位页面元素
selenium-webdriver提供了强大的元素定位方法,支持以下三种方法:
写在最前面:Selenium-webdriver使用WebDriver对象的findElement函数调用"By"对象来定位和查询元素,定位的页面元素需要使用WebElement对象来存储,以便后续使用。
By类只是提供查询的方式进行分类。findElement返回一个元素对象否则抛出异常,findElements返回符合条件的元素List,如果不存在符合条件的就返回一个空的list。比较绕口举个栗子吧!
public static void main(String[] args) {
//下面这个是用来调用findElement方法的WebDrive对象
WebDriver driver = new FirefoxDriver();
driver.get("http://www.51.com");
//下面这是用来储存的WebElement对象
WebElement element = driver.findElement(By.className("username"));
System.out.println(element.getTagName());
}
单个对象的定位方法
在定位单个元素时,Selenium-webdriver提示了如下一些方法对元素进行定位:
使用id属性定位
51.com首页的帐号输入框的html代码如下:
<input id="passport_51_user" type="text" value="" tabindex="1" title="用户名/彩虹号/邮箱"
name="passport_51_user">
在下面的例子中我们用id定位这个输入框,并输出其title,借此也可以验证代码是否工作正常。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class ByUserId {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver dr = new FirefoxDriver();
dr.get("http://www.51.com");
WebElement element = dr.findElement(By.