1.简介 页面对象模型(Page Object Model)在Selenium Webdriver自动化测试中使用非常流行和受欢迎,作为自动化测试工程师应该至少听说过POM这个概念.本篇介绍POM的简介,接下来宏哥一步一步告诉你如何在你Java+Selenium3自动化测试框架中实现POM. 2.POM简介 Page Object Model (POM) 直译为"页面对象模型",这种设计模式旨在为每个待测试的页面创建一个页面对象(class),将那些繁琐的定位操作封装到这个页面对象中,…
1.简介 上一篇介绍了POM的基础理论知识和非POM方式写脚本,这篇介绍利用页面工厂类(page factory)去实现POM,通过查看PageFactory类,我们可以知道它是一个初始化一个页面实例的功能,在实例化该页面对象时候,也会一起实例化该页面的元素定位. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际代码就几行. 2.1代码设计 1.先新建一个pageObjects包,然后在pageObjects包新建一个百度主页类:BaiduHomePage,代码设…
1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要.默认情况下,TestNG 会为其测试执行生成不同类型的报告.这包括一个 HTML 和一个 XML 报告输出.TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用.还有一个选项可以编写自己的记录器,TestNG 在运行时会通知…
1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际代码就几行. 2.1代码设计 1.先新建一个pageObjects包,然后在pageObjects包新建一个百度主页类:BaiduHomePage1,代码设计如下图所示: 2.再次新建一个testSuites包,然后在testSuites包下新建一个测试类:TestWithPOM1 2.2参考代码…
1.简介 今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用dependsOnMethods,testNG会自动根据@Test方法名称的首字母排序来执行测试方法.但是有时,我们可能需要以特定顺序调用测试用例中的方法,或者可能希望在方法之间共享一些数据和状态. TestNG支持这种依赖关系,因为它支持在测试方法之间显式依赖的声明. 2.TestNG允许指定依赖关系 ①在@Test注释中使用属性dependsOnMethods ②在@…
1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操作 鼠标拖拽操作,顾名思义就是:就是鼠标按住将一个元素拖拽到另一个元素上. 2.1基础讲解 //鼠标拖动API,首先实例化一个对象,后边将用这个对象进行一系列操作 Actions action = new Actions(webdriver); //source-要拖动的元素A,target-拖动元…
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就有点难了.宏哥上一篇已经讲解了如何处理日历时间控件,但是对于第一种方法可能会遇到输入框是readonly的情况,那么第一种方法就不适用了,但是只要我们稍微的变通地处理一下,就又可以使用了. 2.问题 宏哥第一种方法地思路就是把它当做输入框,直接输入日期即可,想法是很美好的,但是有时候实行起来却不执行…
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象,也就是 JavascriptExecutor 对象,这个对象是由 driver 进行强制类型转换而来,即JavascriptExecutor js= (JavascriptExecutor)driver:然后这个对象 js 就可以调用 executeScript 方法来执行一段 JS,这段 JS…
1.简介 尽管有的小伙伴或者童鞋们觉得很简单,不就是关闭退出浏览器,但是宏哥还是把两个方法的区别说一下,不然遇到坑后根本不会想到是这里的问题. 2.源码 本文介绍webdriver中关于浏览器退出操作.driver中有两个方法是关于浏览器关闭,一个叫quit,一个叫close.先来看看看两者的声明描述,请看下面声明文档. /** * Close the current window, quitting the browser if it's the last window currently o…
1.简介 上一篇宏哥介绍是如何使用logback将日志输出到控制台中,但是如果需要发给相关人需要你拷贝出来,有时候由于控制台窗口的限制,有部分日志将会无法查看,因此我们还是需要将日志输出到文件中,因此今天主要介绍和分享如何使用logback将日志输出到文件中. 上一篇测试环境已经准备好了,今天我们直接进入主题开始实践. 2.项目实战 2.1日志输出到文件中 1.新建logback.xml或logback-test.xml(优先级高)文件中添加如下图所示内容: 2.logback.xml参考代码…