[1]Selenium WebDriver //P11-P27
WebDriver 提供更精简的编程几口,以解决 Selenium-RC API 中的一些限制。WebDriver 为那些页面元素可以不通过页
面重新加载来更新的动态网页提供了更好的支持。WebDriver 的目标是提供一套精心设计的面向对象的 API 来更好的支持现代高级 web 应用的测试工作。
相比 Selenium-RC ,WebDriver 确实非常不一样。Selenium-RC 在所有支持的浏览器中工作
原理是一样的。它将 JavaScript 在浏览器加载的时候注入浏览器,然后使用这些 JavaScript
驱动 AUT 运行, WebDriver 使用的是不同的技术,再一次强调,它是直接调用浏览器自动化的
本地接口。
1) Get Page
driver.get("http://www.goole.com");
2)find Element
webElement element =driver.findElement(By.id("coolestWidgeEvah"));
List<WebElement> cheeses = driver.findElements(By.className("cheeses"));
WebElement fame =driver.findElement(By.tagName("iframe"));
WebElement cheese =driver.findElement(By.name("cheese"));
WebElement cheese =driver.findElement(By.linktext("cheese"));
WebElement cheese =driver.findElement(By.partiallinktext("cheese"));
WebElement cheese =driver.findElement(By.cssSelector("#food span/dairy.aged"));
3)Select
Select select =new select(driver.findElement(By.tagname("select"))); //tagname
select deselectall();
select.selectByVisibleText("Edam");
driver.findElement(By.id("Submit")).click(); //id
4)Window & Frame
5)Alert
Alert Alert= driver.switchTo().alert();
6)Navigation
driver.navigate().to("http://www.goole.com"); // driver.get("http://www.goole.com");
driver.navigate().back();
driver.navigate().forward();
[2]Selenium RC(Remote Control) //P27-P47
Selenium RC 在很长一段时间内都是 Selenium 的主
要项目,直到 WebDriver/Selenium 合并而产生了最新和最强大的 Selenium 2。
Selenium 仍然被活跃的支持(大部分是维护工作),并且提供了一些 Selenium 2 短期不会
支持的特性,包括支持多语言 (Java, Javascript, Ruby, PHP, Python, Perl 和 C#) 和支持几乎
所有的浏览器。
API使用
1)启动浏览器
setup("http://www.google.com","firefox");
2)运行命令
selenium.type("fied-id","string to type");
3)报告结果
4)测试框架报告工具
5)测试报告库
[3]Selenium Grid //P47-P53
支持分布式的测试,允许在多台机器用多台浏览器并行运行测试
[4]WebDriverJS //P53-P61
WebDriver 的 JavaScript 绑定(WebDriverJS),可以使 JavaScript 开发人员避免上下文切
换的开销,并且可以让他们使用和项目开发代码一样的语言来编写测试。WebDriverJS 既可
以在服务端运行,例如 Node,也可以在浏览器中运行。
[5]高级用户交互 //P62-P66
高级用户交互API提供了一个更新更完善的机制来定义并描述用户在一个网页上的各种操作。
这些操作包括:拖拽、按住CTRL键选择多个元素等等。