51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2255|回复: 1
打印 上一主题 下一主题

selenium写扩展命令报错求指导

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-3-16 17:03:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我写的一个获取当前页面某个元素CSS样式表里面某个属性值的扩展命令;
但是在ItemVlaue = window.getComputedStyle(element,null).cssItem;这一步出错了。。。
找了些资料,看不出问题在哪;求达人指导。。。。。。。。。
PS:暂时这个命令还没有做XPATH、浏览器处理;

  1. // JavaScript Document


  2. /*
  3.         获取当前页面一个元素的CSS样式对应属性;
  4.         参数:css的对应id
  5. */

  6. //根据元素选择器获取元素的某个样式属性值
  7. function getCssAttribute (/*id*/ Selector,/*CSS属性字段*/ cssItem){
  8.         var ItemVlaue,element;
  9.         element = document.getElementById(Selector);
  10.         alert(2);
  11.         /*这个方法只能获取HTML中的style属性,不能获取样式表中的属性ItemVlaue = element.style.cssItem.value;
  12.         */
  13.        
  14.        
  15.         //需要使用getComputedStyle(不支持IE) 和currentStyle(仅IE)来使用...据说这俩都不准。。。推荐用JQ
  16.         //先用getComputedStyle试水
  17.         ItemVlaue = window.getComputedStyle(element,null).cssItem;
  18.         return ItemVlaue;
  19. }

  20. //验证一个元素的某个CSS属性的值
  21. Selenium.prototype.assertCssItem = function(/*id*/ Selector,/*CSS属性字段*/ cssItemAndValue){       
  22.         var CSSItem,Item,location,actualItemValue,expectedItemValue ;
  23.         //分解传进来的参数:将cssItemAndValue分解成属性和值;使用分号来分割;第一个为属性名,第二个为要验证的属性值
  24.         CSSItem = cssItemAndValue.split(":");
  25.         //alert(CSSItem);
  26.         Item = CSSItem[0];
  27.         expectedItemValue = CSSItem[1];
  28.         alert(Selector);
  29.        
  30.         location = Selector;
  31.         alert(1);
  32.         /* 根据属性名获取当前的值 */
  33.         actualItemValue = getCssAttribute(location,Item);
  34.         alert(actualItemValue);
  35.         alert(3);
  36.         //进行比较
  37.         Assert.matches(expectedValue, actualValue);
  38.        
  39. }

复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-3-26 22:09:28 | 只看该作者
我自己解决了。。。。
定位页面使用
this.page().findElemetn(locator)
获取计算后的样式,
Firefox下使用getComputedStyle(element,null),返回一个element当前计算后的样式对象,之后对应的方法获取对应的字段;
IE下使用getCurrentStyle,其他同getComputedStyle。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 01:39 , Processed in 0.066373 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表