【原创】零基础学习Selenium自动化测试(五)--使用PageFactory实现PagaObject设计模式

WebDriver为了支持PageObject模式,内置了一个PageFactory的工厂类。接下来本文通过一个案例来讲下如何使用PageFactory。

WebDriver为了支持PageObject模式,内置了一个PageFactory的工厂类。接下来本文通过一个案例来讲下如何使用PageFactory。

首先定义一个PageObject下面这个Class定义了一个页面对象通过工厂的方式将目标页面上的元素都定义好并且定义了一个当前页面的一个执行步骤【关键词搜索】

package cn.testfan;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class BaiduSearchPage
{
	@FindBy(id="kw")
    private WebElement a;
	
	@FindBy(id="su")
	private WebElement b;

    public void searchKeyWords(String text)
    {
        a.sendKeys(text);
        b.click();
    }
}

为了保证上述代码能运行不报空指针我们需要实例化这个PageObject写一个测试类的Class如下

package cn.testfan;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.PageFactory;

public class TestBaiduWithPageFactory {

	public static void main(String[] args) throws InterruptedException {

		WebDriver driver = new FirefoxDriver();
		driver.get("http://www.baidu.com/");
		driver.manage().window().maximize();

		BaiduSearchPage page = PageFactory.initElements(driver, BaiduSearchPage.class);
		page.searchKeyWords("testfan");
Thread.sleep(1500); System.out.println(driver.getTitle()); driver.close(); } }

这样以后当页面元素发生变化的时候就不需要去改你的case了只需要去变更对应的PageObject中工厂定义就可以了。


-------------------------------------我是华丽的分割线--------------------------------------------------------
Testfan楼大管家原创Selenium系列学习文章列表,点击阅读
---------------------------------------------------------------------------------------------------------------------


  • 发表于 2016-07-27 10:25
  • 阅读 ( 1852 )

0 条评论

请先 登录 后评论
不写代码的码农
楼大管家

测试达人

24 篇文章

作家榜 »

  1. hey girl 181 文章
  2. 王前前 137 文章
  3. 柠檬 118 文章
  4. lamking 105 文章
  5. 云少 105 文章
  6. 腾讯移动品质中心TMQ 104 文章
  7. humortony 82 文章
  8. 开心的阳光 41 文章