4.16、调用 JavaScript
4.16.1、操作浏览器滚动条
虽然 WebDriver 提供了操作浏览器的前进、后退方法,但对于浏览器滚动条并没有提供相应的操作方法。在这种情况下,就可以借助 JavaScript 来控制浏览器的滚动条。
一般我们想到的必须使用滚动条的场景是:注册时的法律条文的阅读。判断用户是否阅读完的标准是:滚动条是否拉到页面底部。当然,有时候为使操作更接近用户行为也会使用滚动条,例如用户要操作的元素在页面的第二屏,一般用户不会对看不到的元素进行操作,那么就需要先将滚动条拖动到页面的第二屏再进行操作。
window.scrollTo()方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数表示水平的左间距,第二个参数表示垂直的上边距。其代码如下:
4.16.2、操作富文本框
当然,JavaScript 的作用不仅仅体现在浏览器滚动条的操作上,例如,还可以用它向页面中 textarea 文本框输入内容,比如下面这个:
他的HTML页面代码如下:
怎么能操作这样的富文本框呢?Id定位弹出富文本框的按钮,然后:
首先定义了要输入的内容 text,然后将 text 与 JavaScript 代码通过“+”进行拼接。这样做的目的是为了使输入内容变得可自定义。最后,通过 executeScript()执行 JavaScript 代码。
4.16.3、显示隐藏的元素
有时候页面上的元素存在却无法显示,WebDriver 无法操作不显示的元素;这个时候也可以借助 JavaScript对使元素显示出来。可以看到下面HTML的代码,对于这类隐藏的元素,主要通过 display 为 none 来控制元素不可见。
那么操作他的JS的java代码如下:
4.17、处理HTML5 的视频播放器
目前 HTML5 技术已经渐渐成为了主流,主流的浏览器都已支持 HTML5。越来越多的应用使用了 HTML5的元素,如 canvas,video 等,另外网页存储功能更增加了用户的网络体验,使得越来越多的开发者在使用这样的标准,所以我们也需要学习如何使用自动化技术来测试它们。
WebDriver 支持在指定的浏览器上测试 HTML5,另外,我们还可以使用 JavaScript 来测试这些功能,这样就可以在任何的浏览器上测试 HTML5 了。
大多数浏览器使用控件(如 Flash) 来播放规频,但是,不同的浏览器需要使用不同的插件。HTML5 定义了一个新的元素<video>,指定了一个标准的方式来嵌入电影片段,如图下图所示 IE9+、Firefox、Opera、Chrome都支持该元素。
我们又将探索如何自动化测试<video>,该元素提供了 JavaScript 接口和多种方法及属性。
【下面来看一下用自动化怎么控制视频的播放以及暂停视频】
JavaScript 函数有个内置的对象叫作 arguments。argument 对象包含了函数调用的参数数组,[0]表示取对象的第 1 个值。
currentSrc 熟悉返回当前音频/视频的 URL。如果未设置音频/视频,则返回空字符串。
load()、play()、pause() 等控制着视频的加载、播放和暂停。