WebDriver 测试开发

发表于:2013-01-14来源:微刊作者:熊志男点击数: 标签:WebDriver 测试
用过好多自动化测试工具,对于一颗拥有程序员心的测试工程师来说,选择webdriver绝对能满足你的要求。使用Webdriver不要求你把一门语言研究的多精通,你只要知道语法,和常用的包,常用的类,常用的方法就足够。

  用过好多自动化测试工具,对于一颗拥有程序员心的测试工程师来说,选择webdriver绝对能满足你的要求。使用Webdriver不要求你把一门语言研究的多精通,你只要知道语法,和常用的包,常用的类,常用的方法就足够。

  说明一下,我使用的的是java。所以,在开始前,你的电脑上正确安装了jdk,然后有个使用习惯的开发工具,如eclipse。最好再装个maven,我的项目都是maven工程。下面我们开始:

  到selenium的官方网站上下载几个包。一个是selenium-server-standalone.jar;还有一个是selenium-java.jar。如果你选择使用firefox(你就使用firefox吧,你会慢慢发现它的好处。)再下载个selenium-firefox-driver.jar

  把它引用到你创建的maven工程中:下面是我pom.xml部分内容。

  org.seleniumhq.selenium

  selenium-java

  2.26.0

  org.seleniumhq.selenium

  selenium-server-standalone

  2.26.0

  org.seleniumhq.selenium

  selenium-firefox-driver

  2.25.0

  如果在 maven dependencies中存在你引的包,并且没有奇奇怪怪的符号,那么,您就可以开始第一个webdriver自动化程序了。

  我们就当你已经成功创建了需要的project并且默认你有一些selenium的相关知识。我们就用webdriver干些事吧,哈哈。

  创建一个Login类。把下面代码拷到文件中,然后运行一下。就能看到打开www.lovo.cn,跳转到登陆页面,然后登陆成功。

  package com.test.login;

  import org.openqa.selenium.By;

  import org.openqa.selenium.WebDriver;

  import org.openqa.selenium.WebElement;

  import org.openqa.selenium.firefox.FirefoxDriver;

  import org.slf4j.Logger;

  import org.slf4j.LoggerFactory;

  public class Login {

  private WebDriver webDriver;

  private String baseUrl;

  private Logger logger = LoggerFactory.getLogger(this.getClass());

  private WebElement element;

  public void openBrowser() throws Exception{

  webDriver = new FirefoxDriver();

  webDriver.get(baseUrl);

  }

  public void clickLoginLink(){

  try {

  baseUrl = "http://www.lovo.cn/";

  this.openBrowser();

  element = webDriver.findElement(By.linkText("登录"));

  if(element != null){

  element.click();

  if(webDriver.findElement(By.id("logusername")) != null){

  logger.info("正常跳转到登陆页");

  }else{

  logger.error("打开登陆页面失败");

  }

  }else{

  logger.error("没有找到登陆链接!!!");

  }

  } catch (Exception e) {

  e.printStackTrace();

  logger.error("发生未知错误!");

  }

  }

  public void login(){

  this.webDriver.findElement(By.id("logusername")).clear();

  this.webDriver.findElement(By.id("logusername")).sendKeys("138****035");

  this.webDriver.findElement(By.id("logpassword")).clear();

  this.webDriver.findElement(By.id("logpassword")).sendKeys("123456");

  this.webDriver.findElement(By.id("logimageCheck")).clear();

  this.webDriver.findElement(By.id("logimageCheck")).sendKeys("5rkz");

  this.webDriver.findElement(By.cssSelector("span.btntext")).click();

  this.webDriver.findElement(By.cssSelector("div.text")).click();

  if(this.webDriver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]* 刘建东[\\s\\S]*$")){

  this.logger.info("登陆成功!");

  }else{

  this.logger.error("登陆失败!");

  }

  }

  public static void main(String[] args){

  Login login = new Login();

  login.clickLoginLink();

  login.login();

  }

  }

  有时候打开firefox的时候会报错,说没有安装firefox之类的错误,这是因为你改变了firefox的默认安装路径。这种情况下,你可以根据FirefoxBinary类实现。

  方法如下:

  public WebDriver openFirefox() throws Exception{

  File file = new File("你的firefox的安装路径+firefox.exe"); //这里注意对\进行转义

  FirefoxBinary firefoxBin = new FirefoxBinary(file);

  WebDriver webDriver = new FirefoxDriver(firefoxBin,null);

  return webDriver;

  }

  或者使用setCapabilit来设置

  方法如下:

  public WebDriver openFirefox() throws Exception{

  DesiredCapabilities des = DesiredCapabilities.firefox();

  des.setCapability("firefox_binary", "你的firefox的安装路径+firefox.exe");

原文转自:http://www.ltesting.net