1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样,我们在写脚本的时候,就直接调用该类方法就可以. 2.项目实战 2.1代码设计 1.在新包library下新建我们的自定义类方法.如下图所示: 2.2参考代码 package library; import org.openqa.selenium.By; import org.openqa.selen…
1.简介 尽管有的小伙伴或者童鞋们觉得很简单,不就是关闭退出浏览器,但是宏哥还是把两个方法的区别说一下,不然遇到坑后根本不会想到是这里的问题. 2.源码 本文介绍webdriver中关于浏览器退出操作.driver中有两个方法是关于浏览器关闭,一个叫quit,一个叫close.先来看看看两者的声明描述,请看下面声明文档. /** * Close the current window, quitting the browser if it's the last window currently o…
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段.关于鼠标悬停,selenium把这个方法放在了Actions.java文件中,先来看看鼠标悬停出现下拉菜单的情况. 2.鼠标悬停出现下拉菜单 鼠标悬停出现下拉菜单,顾名思义就是:鼠标悬停在某一元素上出现下拉菜单. 2.…
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.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要.默认情况下,TestNG 会为其测试执行生成不同类型的报告.这包括一个 HTML 和一个 XML 报告输出.TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用.还有一个选项可以编写自己的记录器,TestNG 在运行时会通知…
1.简介 我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据.网页上日历控件一般,是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期.这一篇,宏哥就来介绍一下日历控件是如何用selenium实现自动化. 2.JQueryUI网站 2.1被测网址 1.被测网址的地址: https://jqueryui.com/resources/demos/checkboxradio/default.html 2.网页如下图: 3.思路一 宏哥这里提…
1.简介 在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScript完成特殊操作. 2.用法 创建一个执行 JS 的对象,也就是 JavascriptExecutor 对象,这个对象是由 driver 进行强制类型转换而来,即JavascriptExecutor js= (JavascriptExecutor)driver:然后这个对象 js 就可以调用 exe…
1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助于用户理解测试步骤或测试用例执行期间的任何失败的信息.在TestNG Logs的帮助下,可以在Selenium测试用例执行期间启用日志记录. 这一篇文章宏哥主要介绍利用TestNG中的Report类来实现简单的log输出,在TestNG中有一个Report的类,这个类的作用是,在添加了@Test的方…