关于减少selenium自动化脚本冗余改进

  在最早接触selenium的时候,觉得可以用java写出基础的脚本,可以运行就好了,比如下面的一段定位元素脚本

1 driver.findElement(By.id("name")).click();
2 driver.findElement(By.xpath("//input[contains(@data-value,‘sort‘)]")).click;

  看到上面的脚本,我们可以单独封装一个方法,用提高代码的简洁,于是我们可以自定义一个方法locateDriverEle

  于是就可以改进我们最初的脚本

1 this.locateDriverEle(driver,"id","name").click();
2 this.locateDriverEle(driver,"xpath","//input[contains(@data-value,‘sort‘)]").click;

  这样脚本看起来就是简单多了,但是下次开发人员改进系统的UI,维护脚本的时候,可以发现,我们操作UI的步骤都是没有变化,变化的只是定位元素的路径而已,于是,我们可以在原来的基础上在再次改进,使用PageFactory思想,在针对被测试界面创建2个类,分别为Page和Test类,Page中专门对被测试节目元素操作,Test类为真正的测试类

 1  1 @FindBy(xpath="//input[contains(@data-value,‘sort‘)]")
 2  2 privateWebElement xpath;
 3  3 privateWebElement id;
 4  4 publicPage(){
 5  5 co =newCom();
 6  6 PageFactory.initElements(driver,this);
 7  7 }
 8  8 publicvoid xpath(){
 9  9   this.xpath.click;
10 10 }
11 11 publicvoid id(){
12 12   this.id.click;
13 13 }

  于是我们最初的脚本就可以改为

1 Page page=new page();
2 page.id();
3 page.xpath();

  改照后,我们的脚本看起来就简单多了,并且开发修改了UI,我们只要维护Page类中元素的路径,是的脚本看起来简单、易维护

  有不懂的地方可以给我留言

时间: 2024-10-10 06:32:36

关于减少selenium自动化脚本冗余改进的相关文章

Selenium+C#自动化脚本开发学习

Selenium+C#自动化脚本开发知识学习 1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指定的URL地址 driver.Navigate().GoToUrl(@"http://12.99.102.196:9080/corporbank/logon_pro.html"); //关闭浏览器 Driver.quit(); 网银浏览器兼容性测试过程中,关闭浏览器后会有对话框,此问题解决

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

我的第一个自动化脚本(python)----百度搜索

这是一个纯小白胡说八道的个人总结,如果有人看到什么不对的,欢迎批评指正 博客园开通了很久,一直不知道该怎么去写,总觉得自己要写的东西都是别人已经写过的,我再去写就是在重复之前人所说,今天去面试和面试姐姐聊到这个问题的时候,我才真正的意识到写博客的意义,其实博客只要是写出来对自己有帮助,管其他人怎么看呢,就算百度搜索出来好多一样的那又怎么样呢,博客是写给自己的,如果能因此帮助别人少走一些弯路又何乐而不为呢 接下来就来我实现这个自动化脚本经历的过程,首先要在火狐浏览器安装selenium IDE:其

如何写好Python+Selenium自动化?

哈喽,各位客官好,今天我给大家讲讲如何使用Python+Selenium做自动化测试,楼主在做开发测试之前做得java开发,由于种种原因,楼主转成了开发测试,接着又自学了脚本语言linux和python,对于这两门脚本,我是非常的喜欢,为什么呢,因为用起来效率太高了,所以楼主弃java转python,至于为什么,不做多解释,你懂得.接下来我将给各位讲讲如何用python+selenium自动化 1,什么是selenium selenium是一个开源的自动化测试框架,主要适用WEB测试,可以支持多

Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)

Selenium 获取 JavaScript 返回值非常简单,只需要在 js 脚本中将需要返回的数据 return 就可以,然后通过方法返回 js 的执行结果,方法源码如下所示: 1 /** 2 * Get Object of return from js 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoSeleniumDemo main.aaron.sele.core SeleniumCore.java execJSR, 2015-8-9

python+selenium自动化软件测试(第4章):场景判断与封装

4.1 显示等待WebDriverWait 前言:在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种隐式等待在一定程度上节省了很多时间.但是一旦页面上某些js无法加载出来(其实界面元素已经出来了),左上角那个图标一直转圈,这时候会一直等待的.一.参数解释1.这里主要有三个参数:class WebDriverWait(object):driver, timeout, poll_frequency2.driver:返回浏览器的一个实例,这个不用多说3.ti

Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)

在自动化脚本编写过程中,操作元素之前,需要对元素进行高亮显示(通过修改元素的边框样式),同时进行截图,以记录操作的元素对象.在实际应用中较为少见,通常用于演示,或者发生错误时的屏幕截图捕捉,用于错误报告分析. 直接上码了...... 1 /** 2 * 3 * @function height light the element 4 * 5 * @author Aaron.ffp 6 * @version V1.0.0: autoUISelenium main.java.aaron.sele.c

Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)

日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资源,当然,最重要的还是未能达到自己的预期,是不是很内伤啊.此时,我们就不得不像正常用户操作一样,通过滚动页面至相应的区域,那么该如何滚动呢,此文就此给出答案. 此文实现的页面滚动,是通过 js 操作实现的,敬请各位小主参阅.若有不足之处,敬请大神指正,非常感谢! 直接上码了...... 1 /**

Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域的方法,我目前想到的只有以下两种方法: 1.通过 JavaScript  获取浏览器显示区域的大小 2.通过 WebDriver 截图,获取截图的大小,从而获得浏览器显示区域的大小 此文主要以第一种方法示例演示,第二种方法进行后续更新,敬请期待!谢谢! 1 /** 2 * Get width and