构建一个 WebDriver 测试工程
  WebDriver API 可以通过 Python、Ruby、Java 和 C#访问,支持开发人员使用他们偏爱的编程语言来创建测试。这里我们以 Java 为例。首先需要准备好自己的 Eclipse 环境,并在 selenium 的官方网站下载 Selenium 2 的 Jar 包。
 

  
图 2. WebDriver 测试工程

  清单 2. 使用 WebDriver API 的脚本 - 登录 SmartCoud iNotes
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class WebDriverDemo {
public static void main(String[] args) {
//创建一个 firefox driver 实例
WebDriver driver = new FirefoxDriver();
//打开测试网址
driver.get("https://apps.na.collabserv.com/");
//定义用户名和密码文本框
WebElement username=driver.findElement(By.id("username"));
WebElement password=driver.findElement(By.id("password"));
//输入用户名和密码
username.sendKeys("autouser01@e3yunmail.mail.lotuslive.com");
password.sendKeys("test");
//点击 login 登录
WebElement login=driver.findElement(By.id("submit_form"));
login.click();
//设置页面等待直到出现 Mail 链接
(new WebDriverWait(driver, 500)).until(new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver dr) {
return dr.findElement(By.linkText("Mail"));
}
});
//登出
WebElement logout=driver.findElement(By.linkText("Log Out"));
logout.click();
//关闭浏览器
driver.quit();
}
}
  Selenium vs WebDriver
  从上述用 Selenium 和 WebDriver 构建的两个测试工程来看,WebDriver 工程在构建之后不需要其他的配置我们便可以直接使用,这一点和 Selenium 是截然不同的。因为 Selenium 还需要安装并启动 Selenium Server 才能运行测试程序。
  另外,我们可以看出 WebDriver 是基于面向对象的 API,它更多的是从用户角度出发。反之 Selenium 提供的是基于字典的 API,用户可以很方便的看到所以支持的方法。毋庸置疑的是,WebDriver 提供的 API 更为简洁,对用户更加的友好。但从另一个角度来看,是用户不能很直观的看到 WebDriver 提供了哪些 API,可能需要通过官网提供的 JavaDoc的协助来找寻一些方法。