在用RFS做自动化测试时,如果调用js和jquery,直接用Execute Javascript 关键字,js代码写上就可以,目前IE浏览器是默认支持的。
该关键字的介绍是可以直接加javascript代码或者是文件,代码量不大的话,直接用代码就行。
js可以弥补RFS在自动化测试中的不足,典型的就是综合型控件的控制,比如拖动出一块区域来标识时间,或者拖动滑块来设置某个参数。
示例1 :有些页面的滑块都是用了css来进行控制,按照一定的比例显示滑块的位置,那么可以通过直接设置滑块css属性来改变位置。Selenium2Library的基础关键字不行的。
示例2:获取元素的全部属性和值。
Selenium2Library,偏向于应用,比如直接获取指定元素的指定属性值。但是如果有新的需求,比如获取指定元素的所有属性,然后根据属性进行相关操作。那么就比较麻烦了。
直接用javascript返回对象的所有属性和值。
var name;//定义变量,最后返回变量
var cars=new Array();//定义了数组,最终返回的是列表
var person=new Object();//定义了对象,最终返回的字典数据
var lenat;//定义了一个长度变量,为后续进行遍历做参数
lenat = document.getElementById("ac-access-door-add").attributes.length;//获取对应对象属性的长度
if( lenat >0)//如果有属性,那么把对象的属性和值放到字典中并返回,其他情况,可以根据需要自行设置返回值
{
for(i =0;i<lenat;i++){
var item_name;
item_name = document.getElementById("ac").attributes[i].name;
item_value = document.getElementById("ac").attributes[item_name].value;
cars[i]=item_value;//列表值增加
person[item_name]=item_value;//字典值增加
}
}
return person;
${ss} Set Variable ${attributes['id']}//RIDE中用字典形式访问相关的属性值
示例3:直接调用jquery框架的业务函数
一种典型的应用就是拖动时间段。通过直接该元素css样式时,是无效的,参数必须传到程序里才有效