java webdriver page object_Selenium2(java)页面对象模型(Page Object) 八

在开发一个 Selenium WebDriver 测试,我们可以使用页面对象模型。这个模型可以使测

试脚本有更高的可维护性,减少了重复的代码,把页面抽象出来。对象模型也提供了一个注释,帮助缓存远程,避免出现元素过期的问题。

分类页面元素

新建java项目selenium_po,导入testng和selenium类库

新建一个page包和一个test包用于存放测试用例

在page包中新建一个BDPage.java用于存取元素

具体代码:

packagepage;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.support.CacheLookup;importorg.openqa.selenium.support.FindBy;importorg.openqa.selenium.support.PageFactory;public classBDPage {//定义元素变量

/**定义百度搜索的输入框*/@FindBy(id="kw")

@CacheLookuppublicWebElement keyword_input;/**定义百度搜索的搜索按钮*/@FindBy(id="su")

@CacheLookuppublicWebElement search_button;//创建一个构造函数,并且调用PageFactory.initElements()方法来初始化元素。换句话说,将元素映射到我们定义好的变量上。

publicBDPage(WebDriver driver) {

PageFactory.initElements(driver,this);

}

}

分离页面操作

新建页面类:HaoSouPage.java

具体代码:

packagepage;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.support.CacheLookup;importorg.openqa.selenium.support.FindBy;importorg.openqa.selenium.support.PageFactory;public classHaoSouPage {/**输入框*/@FindBy(name="q")

@CacheLookupprivateWebElement HSP_INPUT_KEYWORD;/**搜索按钮*/@FindBy(id="search-button")

@CacheLookupprivateWebElement HSP_BUTTON_SEARCH;//定义测试地址

private final String url = "http://www.haosou.com/";private staticWebDriver driver;//提供一个外部获得driver的方法

publicWebDriver getDriver(){returndriver;

}public voidHaoSoupage() {

driver= newFirefoxDriver();

PageFactory.initElements(driver,this);

}public voidclose() {

driver.quit();

}public voidopenUrl() {

driver.get(url);

}//输入关键字selenium并点击查询

public voidsearchByKeyword() {

HSP_INPUT_KEYWORD.sendKeys("test");

HSP_BUTTON_SEARCH.click();

}

}

新建测试类:HaoSouPageTest.java

具体代码:

package test;

importorg.testng.annotations.Test;importpage.HaoSouPage;public classHouSouPageTest {

@Testpublic voidsearchTest() {//实例化haosou页面对象模型

HaoSouPage hsp = newHaoSouPage();//使用页面封装的打开链接方法

hsp.openUrl();//使用页面封装的输入操作

hsp.searchByKeyword();//使用页面封装的退出操作哦

hsp.close();

}

}

页面嵌套对象:

HaoSouPage.java :存储页面元素,相关操作以及嵌套ResultPage对象

ResultPage.java : 存储页面元素以及相关操作

HaoSouPageTest: 执行测试,检查结果

HaoSouPage.java

具体代码:

packagecom.po.page;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.support.CacheLookup;importorg.openqa.selenium.support.FindBy;importorg.openqa.selenium.support.PageFactory;public classHaoSouPage {/**@描述:好搜输入框*/@FindBy(name="q")

@CacheLookupprivateWebElement HSP_INPUT_KEYWORD;/**@描述:好搜搜索按钮*/@FindBy(id="search-button")

@CacheLookupprivateWebElement HSP_BUTTON_SEARCH;//定义测试地址

private final String url = "http://www.haosou.com/";private staticWebDriver driver ;//提供一个外部获得driver的方法

public staticWebDriver getDriver(){returndriver;

}//构造方法初始化元素

public voidHaoSouPage(){

driver= newFirefoxDriver();

PageFactory.initElements(driver,this);

}//包装退出方法

public voidclose(){

driver.quit();

}//打开网址

public voidopenUrl(){

driver.get(url);

}//输入关键字selenium并点击查询,并且返回到搜索界面

publicResultPage searchByKeyword(String keyword){

HSP_INPUT_KEYWORD.sendKeys(keyword);

HSP_BUTTON_SEARCH.click();return newResultPage();

}

}

ResultPage.java

具体代码:

packagecom.po.page;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.support.CacheLookup;importorg.openqa.selenium.support.FindBy;importorg.openqa.selenium.support.PageFactory;importorg.testng.Assert;public classResultPage {/**搜索结果界面的搜索框*/@FindBy(id="keyword")

@CacheLookupprivateWebElement RP_INPT_KEYWORD;//构造方法初始化元素

publicResultPage(){

PageFactory.initElements(HaoSouPage.getDriver(),this);

}/**验证输入框的字是不是Selenium*/

public voidcheckKeyword(){//Assert是TestNG提供的一个断言操作,assertEquals(实际值,期望值),判断两个值是不是相等的。

Assert.assertEquals(RP_INPT_KEYWORD.getAttribute("value"), "selenium");

}

}

HaoSouPageTest.java

具体代码:

packagecom.po.testcase;importorg.testng.annotations.Test;importcom.po.page.HaoSouPage;public classHaoSouPageTest {

@Testpublic voidsearchTest(){//实例化haosou页面对象模型

HaoSouPage hsp =newHaoSouPage();//使用页面封装的打开链接方法

hsp.openUrl();//使用页面封装的输入操作,验证搜索结果输入框页面的值是不是selenium

hsp.searchByKeyword("selenium").checkKeyword();//使用页面封装的退出操作

hsp.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值