从样式表中获取颜色属性

时间:2011-11-15 10:43:26

标签: css selenium getattribute

我需要验证div的背景颜色的值。这是HTML:

<div id="outercontainer" align="left">

有关背景颜色的信息在文件style.css中定义,如下所示:

#outercontainer {
    background-color: #EAEAEA;
    margin-left: auto;
    margin-right: auto;
    opacity: 1;
    width: 1000px;
    z-index: 2;
}

我尝试使用selenium.getattribute命令获取bgcolor的值,但selenium返回了以下错误消息:

  

错误:找不到元素属性:css =#oute   rcontainer @ background-color on session   bc60eb07f15e4e63986634fb59bf58a1

结果是

。 这部分代码:

try
{
     string atr_str = selenium.GetAttribute("css=#outercontainer@background-color");
     Console.WriteLine(atr_str);
}
catch (SeleniumException)
{
     Console.WriteLine("Color value was not got.");
}

事实上,我尝试了不同类型定位器的不同方法,但没有任何帮助。 你有什么建议吗?

2 个答案:

答案 0 :(得分:5)

我没有C#环境来测试它,但是这样的东西应该可以工作:

string js = "
    window.document.defaultView.getComputedStyle(
        window.document.getElementById('outercontainer'), null).
            getPropertyValue('background-color');
            ";
string res = selenium.GetEval(js);

现在res将包含背景颜色的rgba值。您将不得不使用Javascript,因为Selenium不适用于计算样式,只适用于HTML标记本身定义的样式。

我使用了一些换行符来保持可读性:js字符串都可以放在一行上。

答案 1 :(得分:2)

尝试:

string rgbaColor = yourElement.GetCssValue("background-color");