我需要验证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.");
}
事实上,我尝试了不同类型定位器的不同方法,但没有任何帮助。 你有什么建议吗?
答案 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");