Selenium的PageFactory在大型项目中的应用

发表于:2014-5-27 10:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:T.Y    来源:51Testing软件测试网采编

  这个时候就完成对搜索这一功能的冒烟测试,测试执行代码没有使用TestNG,只是直接用了一个main函数。为了写博客简单方便,不推荐大家效仿。
  如果还需要测试其它功能和使用其它节点,直接在PageObject类中加入相应的Field即可。
  分割线-------------------------------------------------------------------------------------------------分割线
  写到这里,如果没用过这个方法的人会越看越晕,现在简单的讲解一下它执行的原理:
  在 PageObject类中我们创建的Field的名称是和页面有一定的对应关系的,不是随意取的,如果像上面代码这么写,默认的selenium会根据 Id最先进行元素查找,如果没有查找到再通过name进行查找,下面的我就不说了,因为你已经想到了。。。如果你担心页面的不规范或者复杂度比较高,容易 产生ID,name,Css等的冲突,selenium不能准确的识别元素, 那么请往下看:
  selenium还提供了一种注解的方式,还是直接上代码:
1 public class PageObject {
2     private WebElement searchTypeSng;
3     @FindBy(name="fromCity")
4     private WebElement fromCity;
5     @FindBy(name="toCity")
6     private WebElement toWhere;
7     private WebElement fromDate;
8
9     public String calDate(int nextDays) {
10         // 当前日期加 n 天之后 n=30
11         Date date = DateUtils.addDays(new Date(), nextDays);
12         // 格式化时间格式
13         return DateFormatUtils.ISO_DATE_FORMAT.format(date);
14     }
15
16     public void searchTrip(WebDriver driver,String from, String to ,String date) {
17         BaseUtils.clearAndTypeString(driver,fromCity, from);
18         BaseUtils.clearAndTypeString(driver,toWhere, to);
19         BaseUtils.clearAndTypeString(driver,fromDate, date);
20         searchTypeSng.submit();
21     }
22
23 }
  当你看到这两个annotations的时候,你已经明白了,是的,selenium提供注解的方式对页面的元素进行准确的定位,可 以参考的关键字有:className、css、id、linkText、name、partialLinkText、tagName、xpath.
  另外selenium还提供了2个关键字,一个是how,另一个是using,如何使用它们就不在这里写了,因为笔者觉得,用这两个关键字更麻烦,理解起来也麻烦。
  关于PageObject & PageFactory的使用,就简单的写了这么多,关于PageFactory还有很多知识,我会抽出时间写在下篇文章里,如果有正在使用这种模式的朋友,请多多批评和指点,相互讨论学习。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号