前言:做UI自动化,不可避免的要和页面上的元素打交道,有的童鞋可能会选择把页面元素的定位,操作都写在测试代码中,当页面元素比较少,测试代码比较少的情况下还好,但是一旦页面元素多起来(实际运用中也不太可能少),测试代码一多,就难以阅读和维护了,因为元素定位的代码并不能直接体现我要定位的是哪个元素,当页面元素变更了,我要去代码中找到该元素定位的代码也是比较困难的,这样就带了维护问题。
这里引入我们这个框架主要的设计理念:PO模式,这个我也是学习的大牛前辈,PO模式全称为Page Object模式,是webdriver中的一种测试设计模式,主要是将每个页面设计为一个class,其中包含了页面中需要测试的元素(按钮,输入框等),这样在写脚本时,可以通过调用页面类来获取该页面的元素。并且,当该页面因为需求变更,带来的元素变更时,我们也不需要改测试代码,只需要改这个页面类就行了,从而使得测试代码与页面元素管理分离。这样就清晰多了,维护起来也很简单明了。
但是,如果页面多了,比如我一个后台系统,有100多个页面,总不能写100个类吧,那维护起来也够呛,所以我们基于PO模式,再将它改良一下。
如下,进入正题:
先看分层:
1.定义一个页面基础类,BasePage,因为所有的页面都有共同点,我们可以将他们抽象出来:每个页面都有元素,每个页面元素需要做的动作,该类主要要做的就是找到这些元素,并做出相应动作:
package com.etyero.object;
import java.util.HashMap;
import org.openqa.