如何合并两个方法(.style + .getcomputedstyle)

时间:2012-06-05 10:15:35

标签: javascript selenium ide

我有一些形式。我需要检查此表单中所有元素的backgroundColor。但在某些元素中,颜色由<style>定义,而另一种元素颜色由css定义。我需要合并两个方法(在Selenium IDE中)

这是我的方法:

1(.style):

var form = window.document.forms[0]; 
elements = form.elements; 
for (var i = 0, len = elements.length; i < len; i++) {
    color = elements[i].style.backgroundColor;
}

2(.getcomputedstyle):

var form = window.document.forms[0]; 
elements = form.elements; 
for (var i = 0, len = elements.length; i < len; i++) {
var color = window.document.defaultView.getComputedStyle(elements[i])
        .getPropertyValue('background-color');
var colorArr = color.replace(/[\\rrgb\\(\\)]/g, '').split(','); 
var hexString = '#'
        + parseInt(colorArr[0]).toString(16)
        + parseInt(colorArr[1]).toString(16)
        + parseInt(colorArr[2]).toString(16);
}

1 个答案:

答案 0 :(得分:2)

第二种方法是获取实际显示在浏览器中的颜色(它们可能来自内联样式,或内部和/或外部css),因此您根本不需要第一种颜色(颜色可能已经被覆盖了)。第二种方法已经将rgb值转换为十六进制(你可能需要反过来吗?)