qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

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部分内容。

 

<dependency>
     <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-java</artifactId>
     <version>2.26.0</version>
 </dependency>
 <dependency>
     <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-server-standalone</artifactId>
     <version>2.26.0</version>
 </dependency>
 <dependency>
     <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-firefox-driver</artifactId>
     <version>2.25.0</version>
 </dependency>

 

  如果在 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");
 WebDirver webDriver = new FirefoxDriver(des);
 return webDriver;
}

 

  总结;

  FirefoxDriver类有7个构造方法,意味着可以用7中方法打开firefox浏览器(其实比7种多),

FirefoxDriver() 
FirefoxDriver(Capabilities desiredCapabilities) 
FirefoxDriver(Capabilities desiredCapabilities, Capabilities requiredCapabilities) 
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile) 
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities capabilities) 
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities desiredCapabilities, Capabilities requiredCapabilities) 
FirefoxDriver(FirefoxProfile profile) 

posted on 2013-01-21 10:22 顺其自然EVO 阅读(3479) 评论(0)  编辑  收藏 所属分类: selenium and watir webdrivers 自动化测试学习


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜