Selenium的PageFactory在大型项目中的应用
作者:网络转载 发布时间:[ 2014/5/28 9:26:43 ] 推荐标签:Selenium PageFactory 软件测试工具
因为近遇到的技术问题一直没找到可行的解决办法,一直在翻看selenium的源代码,之前写测试代码的时候是拿来即用,写什么功能啊,按手动的操作步骤去转换,近日看到一个文章,又去wiki上查了查,觉得写的不错记录下来了。
在使用selenium做UI测试的时候,往往并不是页面的每个功能我们都要测试,总有一些经常要进行回归的功能,再细致一点的说,有一些节点是我们经常 操作的,那么我从项目初期开始进行自动化测试代码编写的话,我们可以设计适应项目的一套自动化测试代码结构,基本的思路是对每一个页面都创建一个相应 的PageObject类,如果是公共的模板页面当然只建立一个可以了。这样下来相当于建立了很多基础页面一样,如果项目开发的过程中还有完整的文档 或者足够详细的用户故事,那么简直太完美了~~因为这样你可以减少很多次的IDE----Browser之间的切换、查找、测试工作,真的方便很多。但 是这个看项目而定吧,这种细致入微的文档很多团队似乎都没能做到。但是笔者还是真的希望在产品初期或项目开始的时候有完整的文档给我们这些自动化测试的人 员手中,这样可以大大加快我们自动化测试代码的编写。绕的有点远了。。。回归正题,如何做这种一个页面一个基础类的实现呢?实际的,看代码:
|
1 public class PageObject {
2
3 private WebElement searchTypeSng;
4 private WebElement fromCity;
5 private WebElement toCity;
6 private WebElement fromDate;
7
8 public String calDate(int nextDays) {
9 // 当前日期加 n 天之后
10 Date date = DateUtils.addDays(new Date(), nextDays);
11 // 格式化时间格式
12 return DateFormatUtils.ISO_DATE_FORMAT.format(date);
13 }
14
15 public void searchTrip(WebDriver driver,String from, String to ,String date) {
16 BaseUtils.clearAndTypeString(driver,fromCity, from);
17 BaseUtils.clearAndTypeString(driver,toCity, to);
18 BaseUtils.clearAndTypeString(driver,fromDate, date);
19 searchTypeSng.submit();
20 }
21
22 }
|
测试执行:
|
public class UsingPageObject {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);
eventDriver.register(new MyWebDriverListener());
eventDriver.get("http://flight.qunar.com/");
PageObject object = PageFactory.initElements(driver, PageObject.class);
String date = object.calDate(30);
object.searchTrip(driver,"北京", "厦门", date);
}
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
两种自动化测试工具AutoRunner与Selenium的对比关于Selenium自动化测试框架的较佳设计模式关于Selenium自动化测试框架那些你不知道的事哪种场景下,需要维护Selenium自动化测试过程?如何对Selenium自动化测试框架进行维护?Selenium自动化测试框架在自动化测试中发挥哪些作用?如何使用自动化测试框架ATF执行Selenium脚本?自动化测试脚本怎么写?如何使用Selenium录制浏览器的脚本?Selenium自动化测试框架软件好用吗?Selenium自动化测试框架ATF是如何根据数据生成用例的?多功能Selenium自动化测试框架软件ATFJava版本的Selenium异常记录第一个UI脚本-Python+Selenium实例:用Selenium和用Webdriver构建出来的测试工程如何放慢Selenium的运行速度Selenium FF WebDriver运行时开启firebug的2种方式

sales@spasvo.com