您的位置:首页 > 其它

Selenium用户指南 - 第四章 Selenium 2.0和WebDriver[1]

2012-05-28 16:05 387 查看
From: http://blog.csdn.net/planisnothing/article/details/7252940
Selenium 2.0 和 WebDriver

注释:我们目前正工作在文档化这些章节。我们相信此处的信息是准确的,然而,要知道我们仍然在这一章上工作着。会提供附加的信息,我们会让这一章变得更加可靠。
Selenium 2.0 特征

Selenium 2.0 有许多令人兴奋的新特征以及对Selenium 1 的改进。这些引入的新特征发布在官方的Selenium Blog的发布声明中。

最主要的新特征是与WebDriver API的集成。该功能标定了大量的限制,并提供了一个可选的,和更简单的编程接口。目标是开发一个面向对象的,为更多数量的浏览器提供附加的支持的,以及对现代的高级Web应用程序测试问题提供改善支持的API。

注释:我们将增加一个Selenium 2.0 新特征描述 - 暂时我们推荐读者阅读发布声明。
Selenium服务器 - 何时使用它

你可能,或可能不,需要Selenium服务器,这取决于你打算如何使用Selenium。如果你打算完全使用WebDriver API,你不一定需要Selenium服务器。Selenium-WebDriver使用每个浏览器对自动化的本地支持直接对浏览器发出调用。如何作出这些调用,依赖于你正在使用的浏览器。
为何你需要Selenium服务器的几个理由是 -

你正在使用Selenium栅格,在许多机器/虚拟机上分布你的测试

你希望连接到一个带有特定版本的浏览器的远程机器,在你目前的机器上没有哪个版本。

你不使用Java绑定,而更喜欢使用HtmlUnit驱动器。
建立一个Selenium-WebDriver项目

安装Selenium用于建立一个开发项目,以便你可以使用Selenium编写程序。如何做依赖于你的编程语言和你的开发环境。
Java

使用Maven是最容易的建立一个Selenium 2.0 Java项目的方式。使用一个Maven pom.xml(项目配置)文件,Maven会下载Java绑定(Selenium 2.0 Java客户端库)和所有它的依赖项,并将为你创建这个项目。一旦你完成了这个步骤,你可以导入Maven项目到你偏爱的IDE,IntelliJ IDEA或Eclipse。

首先,创建一个文件夹去包含你的所有Selenium项目文件。然后你需要一个pom.xml文件,为了使用Maven。这可以用一个文本编辑器创建。我们不会讲授pom.xml文件的细节,或者如何使用Maven,因为已经有与之相关的卓越的参考资料。你的pom.xml文件看起来像这样。创建这个文件在你为项目创建的文件夹中。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>MySel20Proj</groupId>

<artifactId>MySel20Proj</artifactId>

<version>1.0</version>

<dependencies>

<dependency>

<groupId>org.seleniumhq.selenium</groupId>

<artifactId>selenium-java</artifactId>

<version>2.16.1</version>

</dependency>

</dependencies>

</project>

确信你指定了最新的版本。在编写本文档时,上面列出的版本是最新的,然而在Selenium 2.0这个发布后,有频繁的发布。检查当前发布的Maven下载页,相应地编辑上面的依赖项。

现在,从一个命令行,CD到项目目录并运行Maven如下:
mvn clean install

这会下载Selenium和所有它的依赖项,并增加它们到项目中。

最后,导入这个项目到你偏爱的开发环境中。对不熟悉的用户,我们有提供一个显示这个过程的附录。

导入一个Maven项目到IntelliJ IDEA。导入一个Maven项目到Eclipse。
C#

自Selenium 2.2.0起,C#绑定被发布做带有其他依赖动态链接库的一套签名的动态链接库(dll)。在2.2.0前,所有的Selenium动态链接库是不签名的。要包含Selenium在你的项目中,只需从https://code.google.com/p/selenium/downloads/list下载最新的Selenium .NET的zip文件。如果你使用Windows Vista或以上的版本,你应先于解压缩而解块这个zip文件:右点zip文件,点击“属性(Properties)”,点击“解块(Unblock)”然后点击“确定(OK)”。

解压缩zip文件的内容,在Visual Studio(或你选择的IDE)中增加对每个解压缩的文件的引用到你的项目中

官方NuGet包:<a href="http://www.nuget.org/packages/Selenium.RC">RC
WebDriver
WebDriverBackedSelenium
Support
Python

如果你正在使用Python进行测试自动化,那么你或许已经熟悉Python的开发。从命令行运行下面的命令去增加Selenium到你的Python环境。
使用pip安装Selenium

需要安装pip,同样pip有一个对setuptools的依赖。

讲授Python开发本身已经超出了本文档的范畴,不管怎样,有许多Python相关的资源,你组织中的开发者可能可以帮助你加快速度。
Ruby

如果你正在使用Ruby进行测试自动化,那么你或许已经熟悉Ruby的开发。从命令行运行下面的命令去增加Selenium到你的Ruby环境。
gem install selenium-webdriver

讲授Ruby开发本身已经超出了本文档的范畴,不管怎样,有许多Ruby相关的资源,你组织中的开发者可能可以帮助你加快速度。
Perl

Perl绑定由第三方提供,请参考如何安装/起步的任何第三方的文档。在编写本文档时,有一个已知的Perl绑定。
PHP

PHP绑定由第三方提供,请参考如何安装/起步的任何第三方的文档。在编写本文档时,有三个已知的绑定:By Chibimagic By Lukasz Kolczynski and By the Facebook。
从Selenium 1.0迁移

对那些已经有使用Selenium 1.1编写的测试集的用户,我们提供了一些如何从现存的代码迁移到Selenium 2.0的技巧。Simon Stewart,领先的Selenium 2.0的开发者,写过一篇有关从Selenium 1.0迁移的文章。我们已经包含在附录中。
迁移从Selenium RC到Selenium WebDriver
Selenium-WebDriver起步

WebDriver是一个自动化Web应用程序测试的工具,尤其是验证如预期工作。WebDriver的目标是提供一个友好的API,易于开发和理解,比Selenium RC(1.0)API更容易使用,这将帮助你让测试变得更容易理解和维护。它不与任何特定的测试框架关联,以便可以同样好地使用在单元测试或普通的老的“main”方法中。这一节介绍WebDriver API,并帮助你开始熟悉它。从建立一个WebDriver项目开始,如果你还没有。这个已经在前一节,建立一个Selenium-WebDriver项目,中描述。

一旦你的项目建立,你可以看到WebDriver如同任何常规的类库:它是自包含的,通常不需要记住要开始任何附加的处理,或使用前运行任何安装器,不同于带有Selenium RC的代理服务器。

注释:要使用 Chrome,Opera,Android和iPhone驱动器需要附加的步骤。

你现在已经准备好可以编写代码。一个容易的方法是从这个示例开始,在Google搜索术语“Cheese”,然后输出结果页面的标题到控制台。
package org.openqa.selenium.example;

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 Selenium2Example {

public static void main(String[] args) {

// 创建一个Firefox驱动器的新实例

//
注意后面的代码依赖于借口而不是实现

WebDriver driver = new FirefoxDriver();

// 访问Google

driver.get("http://www.google.com");

// 可选的,可以像这样完成相同的事情

// driver.navigate().to("http://www.google.com");

// 按名称找到输入元素

WebElement element = driver.findElement(By.name("q"));

// 键入要搜索的文本

element.sendKeys("Cheese!");

//
提交窗体。WebDriver会找到元素所属的窗体

element.submit();

// 检查页面标题

System.out.println("Page title is: " + driver.getTitle());

//
Google搜索用Javascript动态绘制

// 等待页面被装载,10秒后超时

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {

public Boolean apply(WebDriver d) {

return d.getTitle().toLowerCase().startsWith("cheese!");

}

});

// 应看到:"cheese! - Google Search"

System.out.println("Page title is: " + driver.getTitle());

// 关闭浏览器

driver.quit();

}

}

在接下来的部分,我们要学习更多的关于如何使用WebDriver,诸如在浏览器的历史中前后导航,如何测试使用frame和window的Web站点。我们也会提供更多的全面的讨论和示例。

© Copyright 2008-2012, Selenium Project. Last updated on Feb 02, 2012.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: