您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
Selenium 2.0 WebDriver 使用指南
作者:网络转载 发布时间:[ 2014/2/14 13:46:43 ] 推荐标签:Selenium WebDriver 功能测试

  请确认你使用的WebDriver是新的当前版本。在这篇文档撰写时,上述示例给出的是新的版本。在Selenium2.0发布不久WebDriver有过频繁的更新。请在这个链接MavenDownloadPage确认当前的版本,相应地修改你工程中的pon.xml。
  现在,你可以通过dos界面使用CD命令进入工程所在文件夹,通过以下命令运行Maven。
  mvncleaninstall
  运行之后会自动下载Selenium及相关套件,并加载到你的工程中去。
  后,将你的工程导入到你偏好的IDE中。如果你对导入的过程不是很清楚,我们已经准备了操作指南。
  ImportingamavenprojectintoIntelliJIDEA.ImportingamavenprojectintoEclipse
  5.如何将自动化工程从Selenium1.0迁移到Selenium2.0
  已经在Selenium1.0上构建测试工程的用户,我们为您提供了一份指导如何将已有的代码迁移到Selenium2.0。Selenium2.0的首席开发工程师SimonStewart为此撰写了一片文章:MagratingFromSeleniumRCtoSeleniumWebDriver。
  6.Selenium-WebDriverAPI简介
  WebDriver可以用来实现Web应用程序的自动化测试,特别适合于验证实际结果是否符合预期结果的场景。WebDriver旨在提供比Selenium1.0更加易用、友好的API,便于用户的探索和理解,从而使测试用例变得容易阅读和维护。WebDriver没有使用任何第三方测试框架,所以它可以很好与单元测试工具或者古老的main函数结合使用。本章节将介绍如何使用WebDriver的API,帮助你慢慢开始了解WebDriver。如果你还没有新建一个Selenium工程,请先完成这个操作,在这个章节的上面有详细的描述。
  当你创建完Selenium工程后,你会发现WebDriver和普通的第三方库一样是完全独立的,在你使用之前不需要启动任何额外的进程或者安装程序,相反如果你使用Selenium-RC需要先启动代理服务器。
  注意:当你使用如下WebDriver时需要额外的步骤:ChromeDriver,OperaDriver,AndroidDriver,IPhoneDriver。
  现在你肯定跃跃欲试要写一些代码了。我们以一个简单的例子来开始第一段旅程:在Google上搜索“Cheese”,并打印出搜索结果网页的标题。
packageorg.openqa.selenium.example;
importorg.openqa.selenium.By;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.firefox.FirefoxDriver;
importorg.openqa.selenium.support.ui.ExpectedCondition;
importorg.openqa.selenium.support.ui.WebDriverWait;
publicclassSelenium2Example{
publicstaticvoidmain(String[]args){
//创建一个FirefoxDriver实例
//这个类依赖于接口而不是接口的实现
WebDriverdriver=newFirefoxDriver();
//使用get方法访问Google
driver.get("http://www.google.com");
//使用下面这个方法也能够达到访问Google的目的
//driver.navigate().to("http://www.google.com");
//找到html输入框的name
WebElementelement=driver.findElement(By.name("q"));
//输入要查找的内容
element.sendKeys("Cheese!");
//提交表单,WebDriver会自动找到我们需要提交的元素所在的表单
element.submit();
//打印网页的标题
System.out.println("Pagetitleis:"+driver.getTitle());
//Google的搜索网页会通过JS动态渲染
//等待页面加载完毕,超时时间为10秒
(newWebDriverWait(driver,10)).until(newExpectedCondition<Boolean>(){
publicBooleanapply(WebDriverd){
returnd.getTitle().toLowerCase().startsWith("cheese!");
}
});
//控制台上将打印如下信息:"cheese!-GoogleSearch"
System.out.println("Pagetitleis:"+driver.getTitle());
//关闭浏览器
driver.quit();
}
}
  在本章节的接下来篇幅,我们将学习如何使用WebDriver操作你的浏览器,如何使用框架和窗口来测试Web网站。当然,我们将提供更加翔实的论述和举例。
  7.Selenium-WebDriverAPI详解
  7.1获取Web页面
  我们第一件要做的事是通过WebDriver取得Web页面的控制权,一般情况下使用get方法
  driver.get("http://www.google.com");
  在某些情况下,比如操作系统和浏览器的穿插组合,WebDriver有可能不会等待Web页面加载完成,这种情况下WebDriver会返回错误或者直接运行下一步操作。为了保证程序的健壮性,你需要等待页面中某个元素加载完成后再进行下一步操作,请参考ExplicitandImplicitWaits。
  7.2定位UI元素
  我们可以通过WebDriver实例或者WebElement类来定位UI元素。我们为每种编程语言都提供了两种方法:“FindElement”和“FindElements”。第一种方法返回的一个WebElement,找不到则抛出异常。第二个方法返回一个WebElement链表(List),在找不到任何DOM元素的情况下会返回空的链表。
  Find方法会使用类似探测器的类,类名叫做By。下面列举By的一些常用方法:
  ByID
  当我们定位一个UI元素,这个是有效也是好的方法。不过这个方法不是的,有的前端开发在设计UI元素时会遗漏ID或者使用动态ID,这两种情况下都要避免使用这个方法。这时候使用获取class名称方法比ByID更合适。
  示例:如何使用该方法定位元素
  <divid="coolestWidgetEvah">...</div>
  WebElementelement=driver.findElement(By.id("coolestWidgetEvah"));

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd