标签:
日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资源,当然,最重要的还是未能达到自己的预期,是不是很内伤啊。此时,我们就不得不像正常用户操作一样,通过滚动页面至相应的区域,那么该如何滚动呢,此文就此给出答案。
此文实现的页面滚动,是通过 js 操作实现的,敬请各位小主参阅。若有不足之处,敬请大神指正,非常感谢!
直接上码了......
1 /** 2 * Scroll screen by JavaScript 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java scrollScreen, 2015-7-26 10:58:14 Exp $ 6 * 7 * @param top : top distance 8 * @param left : left distance 9 */ 10 public void scrollScreen(int left, int top){ 11 // note declare DOCTYPE 12 String js_body = "document.body.scrollTop = " + top + "; document.body.scrollLeft = " + left; 13 // declare DOCTYPE 14 String js_docu = "document.documentElement.scrollTop = " + top + "; document.documentElement.scrollLeft = " + left; 15 16 // decide which the script will be execute by browser type 17 switch (this.getBrowserType()) { 18 case "Chrome": 19 this.execJS(js_body); 20 break; 21 case "Firefox": 22 case "InternetExplorerDriver": 23 case "Safari": 24 this.execJS(js_docu); 25 break; 26 default: 27 this.execJS(js_docu); 28 break; 29 } 30 }
关于上述代码中涉及的获取浏览器类型的方法 getBrowserType,敬请参阅之前的博文 WebUI自动化实战实例-017-获取浏览器类型
关于上述代码中涉及的执行 JavaScript 的方法 execJS 如下所示:
1 /** 2 * execute JScript 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java execJavascript, 2015-6-17 00:25:38 Exp $ 6 * 7 * @param jscript 8 */ 9 public void execJS(String jscript){ 10 ((JavascriptExecutor)this.webdriver).executeScript(jscript); 11 }
至此,WebUI 自动化功能测试脚本第 025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条) 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
标签:
原文地址:http://www.cnblogs.com/fengpingfan/p/4695604.html