Получить атрибут цвета из таблицы стилей - PullRequest
4 голосов
/ 15 ноября 2011

Мне нужно проверить значение цвета фона 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;
}

Я попытался получить значение bgcolor с помощью команды selenium.getattribute, но селен вернул мне следующее сообщение об ошибке:

ОШИБКА: не удалось найти атрибут элемента: css = # oute rcontainer @ background-color на сессии 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 ]

5 голосов
/ 15 ноября 2011

У меня нет среды 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 можно поместить в одну строку.

2 голосов
/ 12 декабря 2013

Попробуйте с:

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