[原创]Juint4 + WebDriver 搭建自动化测试框架

作者:无名 - 开源软件 -

本例中用百度的搜索为例,将百度首页定义成一个待测试类 HomePage

 

public class HomePage {
private WebDriver driver;

@FindBy(how = How.NAME, using = "wd")
public static WebElement serchInputbox;

@FindBy(how = How.ID, using = "su")
public static WebElement serchBtn;

@FindBy(how = How.ID, using = "container")
public static WebElement serchResult;

public HomePage(WebDriver driver) {
    this.driver = driver;
    ElementLocatorFactory finder = new AjaxElementLocatorFactory(driver,
            120);
    PageFactory.initElements(finder, this);

}

public void enterSerchTxt(String serchTxt) {
    serchInputbox.clear();
    serchInputbox.sendKeys(serchTxt);
}

public void clickSerchButton() {
    serchBtn.click();
}

public void checkResult() {
    assertEquals(serchResult.isDisplayed(), true);
}
} 

上面的构造函数中用到了 PageFactory 这个三方类,另外定义了一些待测方法(测试用例中的小步骤)
下面是对应于 HomePage 的测试类 homepageTest ,您可以在HomePage上右击新建 junit file ,选择 BeforeClass, Setup ...需要注意的是命名必须是以 Test 结尾。

public class homepageTest {
protected static WebDriver driver;

@BeforeClass
public static void beforeClass() throws Exception {
    driver = new InternetExplorerDriver();
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
    driver.quit();
}

@Before
public void setUp() throws Exception {
    driver.get("http://www.baidu.com");
}

@After
public void tearDown() throws Exception {
}

@Test
public void testHomepage() {
    HomePage homepage = new HomePage(driver);
    homepage.enterSerchTxt("selenium");
    homepage.clickSerchButton();
    // maybe the net will delay, so wait for while
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    homepage.checkResult();
}
}

 

@Test 里面便是测试用例,可以有多个 @Test。
现在就可以编译下,run as --> junit test

本文采用的 iedriver ,机器是64位的,会默认启动你的64位 ie(ie8分64和32位),如果您需要启32位 ie,则需要用32位的 jar 启动 selenium sever。

IT人知识库 该篇知识地址:http://www.itpeo.net/15310/3487037.html





rfedfre

[原创] Selenium By 查找页面元素

通常selenium By 可以通过id,class,xpath,css等定位页面元素。 id 和class比... ...

rfedfre

Struts上路_16-JFreeChart图表

下载地址:http://www.jfree.org/jfreechart/  解压后运行dem... ...

rfedfre

Struts上路_15-处理表单重复提交

1.在表单添加token标签: 2.配置struts.xml: ... ...

rfedfre

Struts上路_14-模型驱动

本篇是基于面向对象操作OGNL中的值栈。  1.使用JavaBean封装属性数... ...

使用vagrant小记

当使用vagrant add box 【name】 url 进行添加box ,或是使用vagrantfile 初始... ...

交互过程中哪些应该给出响应

在以下情况是需要给出响应信息:     1,手动启动触发器之后或者手动... ...

SpiderMonkey安装

SpiderMonkey 是 Mozilla使用C/C++开发的JavaScript引擎,该引擎已经在多个产品中... ...

java编写一个类的列表

       认为编写一个类的列表,深受程序员。我应该... ...

不需求写代码的快速开发平台

1.  面向群众 起步快速开发平台简略易用,用户不需求写代码,也不需求懂技能,因而合适所有的用户,不论能... ...

HBase基本原理

HBase以表的形式存储数据。与关系型数据库一样,在HBase中,表由行和列组成。与关系型数据库不同的是,HBa... ...

Hibernate CURD的封装和HQL的多表查询:

自己写的一个Hibernate CURD的封装 自己在dome一个小... ...

google国际访问方法

访问Google国际版的方法 2009年03月12日 星期四 18:41 ... ...

如今Windows下的安卓开发环境怎么

android 至今仍然不能靠谱的在 windows 下正常编译。官方虽然提供了用 cygwin 辅助编译的方... ...

数组和arrayList的区别

一、数组与ArrayList的主要区别:效率、类型识别和primitive type。数组([]):... ...

Delphi 获得每个进程的CPU使用率

function GetCPUUsage(var liOldIdleTime, li... ...

Oracle数据类型简介【转贴】

Oracle数据类型简介   一、概述  在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSI... ...

原生PHP实现获取数组最大最小值

这也很简洁,使用于Java中 $rr = array(4 , 1 , 44 , 12); $min... ...

StandardWrapper分析-tomcat6.x源码阅读

2013-10-20 StandardWrapper是什么 StandardWrapper是负责对Servle... ...

StandardWrapperValve分析-tomcat6.x源码阅读

2013-11-10 StandardWrapperValve是StandardWrapper容器的Basic... ...

Windows2008中的IIS7

一年前,微软正式发布了Windows server 2008,今天看了一下说明,它提供了几个激动人心的新东... ...