JAVA自动化测试之页面对象模型(Page Object)
2016-08-31 18:34
295 查看
在做Selenium WebDriver 自动化测试时,我们可以使用页面对象模型。这个模型可以使测试脚本有更高的可维护性,减少了重复的代码,把页面抽象出来。对象模型也提供了一个注释,帮助缓存远程,避免出现元素过期的问题。
(一)分离页面元素
@FindBy:这个定义了你所查找的元素是以什么方式 定位的,比如图中我用的是id,那么就写成 @FindBy(id="kw"),还有其他几种写法:@FindBy(name="xx")、@FindBy(className="xx")、@FindBy(xpath="xxx")、@FindBy(css="xxx")等等
@CacheLookup:意思是说找到元素之后将缓存元素,重复的使用这些元素,将使测试的速度大大加快。
WebElement keyword_input:就是变量名
(二)分离页面操作
待续
(一)分离页面元素
public class BDPage { //定义元素变量 /**定义百度搜索的输入框*/ @FindBy(id="kw") @CacheLookup public WebElement keyword_input; //创建一个构造函数,并且调用 PageFactory.initElements()方法来初始化元素。换句话说,将元素映射到我们定义好的变量上。 public BDPage(WebDriver driver){ PageFactory.initElements(driver, this); }
@FindBy:这个定义了你所查找的元素是以什么方式 定位的,比如图中我用的是id,那么就写成 @FindBy(id="kw"),还有其他几种写法:@FindBy(name="xx")、@FindBy(className="xx")、@FindBy(xpath="xxx")、@FindBy(css="xxx")等等
@CacheLookup:意思是说找到元素之后将缓存元素,重复的使用这些元素,将使测试的速度大大加快。
WebElement keyword_input:就是变量名
(二)分离页面操作
public class HaoSouPage { /**@描述:好搜输入框*/ @FindBy(name="q") @CacheLookup private WebElement HSP_INPUT_KEYWORD; /**@描述:好搜搜索按钮*/ @FindBy(id="search-button") @CacheLookup private WebElement HSP_BUTTON_SEARCH; //定义测试地址 private final String url= "http://www.haosou.com/"; private static WebDriver driver; /提供一个外部获得driver的方法 public WebDriver getDriver(){ return driver; } public HaoSouPage(){ driver= new FirefoxDriver(); PageFactory.initElements(driver, this); } //包装退出方法 public void close(){ driver.quit(); } //打开网址 public void openUrl(){ driver.get(url); } //输入关键字selenium并点击查询 public void searchByKeyword(){ HSP_INPUT_KEYWORD.sendKeys("selenium"); HSP_BUTTON_SEARCH.click(); } }测试类:
public class HaoSouPageTest { @Test public void searchTest(){ //实例化haosou页面对象模型 HaoSouPage hsp=new HaoSouPage(); //使用页面封装的打开链接方法 hsp.openUrl(); //使用页面封装的输入操作 hsp.searchByKeyword(); //使用页面封装的退出操作 hsp.close(); } }(三)页面嵌套对象
待续
相关文章推荐
- Selenium2(java)页面对象模型(Page Object) 八
- selenium 的页面对象模型Page Object
- Cucumber java + Webdriver (4) 使用自动化测试的Page对象模式
- Selenium(Python)PageObject页面对象
- ASP.NET 页面对象模型(page)
- ASP.NET页面对象模型:Page类介绍
- 页面对象(page object)模式
- 使用页面对象模型(pageFactory)
- Webdriver的设计模式:Page Object(页面模型)
- FileSystemObject 对象模型
- 了解ASP.NET页面对象模型
- ASP.NET 页面对象模型
- page 页面模型。。。
- ASP.NET 页面对象模型(转载)
- ASP.NET 页面对象模型(转载)
- [转]ASP.NET 页面对象模型
- ASP.NET 页面对象模型
- C++对象模型,很多东西来自《Inside the C++ Object Model》一书
- ASP.NET 页面对象模型
- ASP.NET 页面对象模型