[转载]Selenium2.0之WebDriver学习总结(2) 下载本文

内容发布更新时间 : 2024/6/26 19:15:08星期一 下面是文章的全部内容请认真阅读。

(三) 命令和操作

这一部分将介绍一下WebDriver的一些具体操作和命令,实际操作中,我们需要两大工具来帮助我们:FireBug和Xpath工具,这两者都是Firefox上的插件。接下来我们所讲解的都是以FirefoxDriver为基础的,且基于WebDriver driver = new FirefoxDriver();创建的一个driver实例:

a) 访问一个页面

第一件你想使用WebDriver做的事情肯定是访问一个页面,最基础的方法是调用“get”方法:

driver.get(\.google.com\); 同样我们可以使用:

driver.navigate().to(\.google.com\); WebDriver会自动等待到该页面完全加载才执行接下来的测试和脚本的执行。但是如果你的页面存在很多的AJAX加载,此时WebDriver是无法知道是否完成加载。检查此类页面是否加载完成,那么我们就需要Explicit和Implicit Wait(这两个将在后面文章解释)。

b) 定位UI元素

WebDriver可以通过WebDriver实例来定位元素,任何语言库都含有“Find Element”和“Find Elements”的方法。第一个方法返回一个WebElement或者抛出异常。后者返回

所有WebElement的列表,或者空列表。

获取和定位元素我们调用“By”方法。下面具体解释下“By”方法: By ID

这是一个极为有效定位元素的方法。普遍的现状是UI工程师在实际编写页面时很少写id或者自动生产一个ID,这些都是需要避免的。对于一个页面Element来说,class比自动生产的id更好。

通过id定位元素的例子:

...

WebElement element = driver.findElement(By.id(\ By Class Name

这里的class指的是DOM中的元素,在实际使用过程中,我们也会发现很多DOM元素含有相同的class名。

通过class name定位元素例子:

Cheddar

Gouda

List cheeses = driver.findElements(By.className(\ By Tag Name DOM的Tag元素

用Tag name定位元素的例子:

WebElement frame = driver.findElement(By.tagName(\ By Name 例子: