51Testing软件测试论坛
标题:
selenium写扩展命令报错求指导
[打印本页]
作者:
zk_testing
时间:
2012-3-16 17:03
标题:
selenium写扩展命令报错求指导
下面是我写的一个获取当前页面某个元素CSS样式表里面某个属性值的扩展命令;
但是在ItemVlaue = window.getComputedStyle(element,null).cssItem;这一步出错了。。。
找了些资料,看不出问题在哪;求达人指导。。。。。。。。。
PS:暂时这个命令还没有做XPATH、浏览器处理;
// JavaScript Document
/*
获取当前页面一个元素的CSS样式对应属性;
参数:css的对应id
*/
//根据元素选择器获取元素的某个样式属性值
function getCssAttribute (/*id*/ Selector,/*CSS属性字段*/ cssItem){
var ItemVlaue,element;
element = document.getElementById(Selector);
alert(2);
/*这个方法只能获取HTML中的style属性,不能获取样式表中的属性ItemVlaue = element.style.cssItem.value;
*/
//需要使用getComputedStyle(不支持IE) 和currentStyle(仅IE)来使用...据说这俩都不准。。。推荐用JQ
//先用getComputedStyle试水
ItemVlaue = window.getComputedStyle(element,null).cssItem;
return ItemVlaue;
}
//验证一个元素的某个CSS属性的值
Selenium.prototype.assertCssItem = function(/*id*/ Selector,/*CSS属性字段*/ cssItemAndValue){
var CSSItem,Item,location,actualItemValue,expectedItemValue ;
//分解传进来的参数:将cssItemAndValue分解成属性和值;使用分号来分割;第一个为属性名,第二个为要验证的属性值
CSSItem = cssItemAndValue.split(":");
//alert(CSSItem);
Item = CSSItem[0];
expectedItemValue = CSSItem[1];
alert(Selector);
location = Selector;
alert(1);
/* 根据属性名获取当前的值 */
actualItemValue = getCssAttribute(location,Item);
alert(actualItemValue);
alert(3);
//进行比较
Assert.matches(expectedValue, actualValue);
}
复制代码
作者:
zk_testing
时间:
2012-3-26 22:09
我自己解决了。。。。
定位页面使用
this.page().findElemetn(locator)
获取计算后的样式,
Firefox下使用getComputedStyle(element,null),返回一个element当前计算后的样式对象,之后对应的方法获取对应的字段;
IE下使用getCurrentStyle,其他同getComputedStyle。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2