SeleniumWebDriver
注意:我们正致力于完善帮助指南的每一个章节,虽然这个章节仍然存在需要完善的地方,不过我们坚信当前你看到的帮助信息是精确无误的,后续我们会提供更多的指导信息来完善帮助文档。
1.WebDriver介绍
Selenium2.0主要的新特性是集成了WebDriverAPI。我们设计WebDriver的初衷是提供更加简单明了的接口来弥补Selenium-RCAPI的不足。在动态网页中,通常只会更新局部的html元素,WebDriver会很好的帮助用户快速定位这些元素。我们终的目的是通过提供精心设计的面向对象API来解决现代高级网页中的测试难题。
2.WebDriver如何驱动浏览器?与Selenium-RC有什么区别?
不同类型的浏览器都会有原生的接口支持自动化操作,Selenium通过这些接口直接向浏览器发送指令。如何发送这些指令取决于你当前使用的浏览器类型,我们将在这一章节后面来详细介绍。
看上去WebDriver与之前Selenium-RC的实现方式类似,实际上两者之间存在着本质的区别。对于所有类型的浏览器Selenium-RC都是使用的同一种方法:当浏览器启动时,向其中注入javascript,从而使用这些js来驱动浏览器中的AUT(ApplicationUnderTest)。WebDriver并没有使用这种技术,它是通过调用浏览器原生的自动化API直接驱动浏览器。
3.WebDriver与SeleniumServer
是否需要是用SeleniumServer取决于你使用WebDriver的方式。以下两种情况不需要使用SeleniumServer,WebDriver直接运行浏览器即可:1、testcases仅仅使用了Webdriver的API;2、浏览器和testcase在同一台PC上,而且testcases仅仅使用了Webdriver的API。
以下三种情况你需要结合SeleniumServer来使用WebDriver:
1)使用Selenium-Grid管理集群环境(或者虚拟机)上的testcase;
2)需要调用非本机上的不同版本的浏览器;
3)未使用任何languagebinding(java/c#/python/ruby),且有意向使用HtmlUnitDriver。
4.配置Selenium-WebDriver工程
安装Selenium是指在开发环境上配置一个工程,然后可以在这个工程中用Selenium编写程序。如何配置取决于你使用的开发语言和编程环境。
使用Maven是配置一个Selenium2.0java工程简单的方式。Maven会下载所有javabingdings以及所有相关的库(theSelenium2.0javaclientlibrary)。通过使用pom.xml(maven配置文件)来新建工程,你可以根据自己的喜好将Maven工程导入IntelliJIDEA或者Eclipse。
首先,创建一个文件夹存放Maven工程文件。然后,创建pom.xml,你可以使用texteditor来编辑。鉴于已经有很多关于“如何在Maven工程中使用pom.xml”的参考文献,这里将不再过多的讨论相关细节。下面给出一个示例,为你的工程也创建一个类似的文件。
<?xmlversion="1.0"encoding="UTF-8"?>
<projectxmlns="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.0http://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.38.0</version>
</dependency>
<dependency>
<groupId>com.opera</groupId>
<artifactId>operadriver</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.opera</groupId>
<artifactId>operadriver</artifactId>
<version>1.5</version>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
</project>