4

我需要验证 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 向我返回了以下错误消息:

错误:在会话 bc60eb07f15e4e63986634fb59bf58a1 上找不到元素属性:css=#oute rcontainer@background-color

作为结果。我的这部分代码:

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

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

4

2 回答 2

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字符串都可以放在一行上。

于 2011-11-15T11:14:45.000 回答
2

尝试:

string rgbaColor = yourElement.GetCssValue("background-color");
于 2013-12-12T10:30:02.690 回答