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

日常的 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 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

时间: 2024-12-18 04:55:22

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

Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例

弹出框是网页自动化测试常见得操作页面元素之一,常见的JavaScript弹出框有如下三种: 1.alert(message):方法用于显示带有一条指定消息和一个 OK 按钮的警告框.DemoAlert.html 示例代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html&g

Selenium2学习-003-Selenium2 WebUI自动化实战实例-001-百度搜索

此文主要通过百度搜索功能,进行 Selenium2 的实战实例讲解,文中所附源代码于 2015-01-16 02:01 亲测通过,敬请亲们阅览.希望能对初学 Selenium2 UI 自动化测试编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! 脚本实现功能步骤如下所示: 启动 Chrome 浏览器 打开百度网址:www.baidu.com 输入搜索项:范丰平 博客园 获取搜索结果的第一项,并打开 关闭 Chrome 浏览器(为显示打开效果,已将此项注释) 夜已深了,鬼话少述,直接上源代

Selenium2学习-034-WebUI自动化实战实例-032-页面快照截图应用之三 -- 区域截图(专业版)

之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无法满足,那么该如何操作呢? 刷新页面,相当于页面归位操作 判断要截取的区域范围与当前浏览器显示区域大小关系,若截取范围大于显示区域,则重置浏览器窗口大小 模拟鼠标操作滚动屏幕,使需要截取的区域显示到浏览器窗口 重新计算截取起始位置相对于当前显示区域的坐标 调用之前的截图方法截图 下面就以获取易迅网首

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

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学习-024-WebUI自动化实战实例-022-网站不同分辨率下页面样式展示兼容性问题解决方案 -- 设置浏览器显示区域大小(无人值守,节约测试成本的福音,BOSS 最爱)

在 Web UI 自动化测试的过程中,通常会测试页面在不同分辨率下的显示效果,即在不同大小的显示器上全屏浏览器后的页面展示,此种测试方法需要购置不同大小的显示器,或者频繁的设置屏幕分辨率,不仅浪费了大量的金钱,同时也需要有人值守,从而使测试变成了半自动化,背离了自动化测试的初衷,也在一定程度上困扰了一定的自动化测试人员. 其实,不同分辨率下的测试,在一定程度上可以看做是浏览器窗口最大化后,浏览器可显示区域的页面样式兼容性测试.此文通过设置浏览器页面显示区域大小,从而摆脱上述种种问题的束缚.只需要

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

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

Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)

通过 JS 或 JQuery 获取到元素后,通过 offsetLeft.offsetTop.offsetWidth.offsetHeight 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参阅! 1 /** 2 * Get element position by jquery, and return integer Array [left distance, top distance, width distance, height distance] 3 * 4 * @author A

Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能

之前的博文 020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小) 简述了通过 JavaScript 获取浏览器显示区域大小,此文将简述另一种获取浏览器显示区域大小的方法,即通过 WebDriver 的截图功能,获取显示区域的截图,通过截图的大小获取浏览器显示区域的大小. 直接上码了,敬请小主们参阅,若有不足之处,敬请大神指正,不胜感激! 1 /** 2 * Get width and height about display screen area