Как получить значение атрибута стиля элемента с помощью селена webdriver C # - PullRequest
0 голосов
/ 24 мая 2018

Я хочу получить значение стиля из элемента и присвоить его строке var.Я попытался использовать приведенный ниже код, но он возвращает значение 'rgb (173, 255, 47)', когда я пытаюсь вернуть значение 'background: # ADFF2F "':

IWebElement highlightedText = _driver.FindElement(By.Id("firstHeading")).FindElement(By.CssSelector("th-highlight-span"));
actualHighlightColour = highlightedText.GetAttribute("style");

Этокод src с веб-страницы, с которого я хочу получить значение стиля:

<h1 id="firstHeading" class="firstHeading" lang="en">
 ::before
 <th-highlight-span style="background:#ADFF2F" data- 
 rwstate="ss">California Proposition 218 (1996)</th-highlight-span>

Код, который я пытался использовать, возвращает 'rgb (173, 255, 47)', который можно найти здесь, но яхочу вернуть фон: # ADFF2F:

element.style {
background: #ADFF2F;
background-image: initial;
background-position-x: initial;
background-position-y: initial;
background-size: initial;
background-repeat-x: initial;
background-repeat-y: initial;
background-attachment: initial;
background-origin: initial;
background-clip: initial;
background-color: rgb(173, 255, 47);

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

В соответствии с HTML , которым вы поделились, для получения атрибута style , то есть текста background: # ADFF2F , вы можете использовать следующее решение:

actualHighlightColour = _driver.FindElement(By.CssSelector("h1.firstHeading#firstHeading>th-highlight-span")).GetAttribute("style");

Обновление

Поскольку вышеприведенное выражение все еще возвращает background: rgb(173, 255, 47);, получите вывод в виде rgb (173, 255, 47) , вы можете использовать GetCssValue() метод, и вы можете использовать следующее решение:

actualHighlightColour = _driver.FindElement(By.CssSelector("h1.firstHeading#firstHeading>th-highlight-span")).GetCssValue("background");

Подробное обсуждение можно найти в Как преобразовать #ffffff в #fff или #fff в #ffffff приутверждение цвета фона rgb (255,255,255), возвращаемого Selenium getCssValue («background»)

0 голосов
/ 24 мая 2018

Конвертировать RGB в шестнадцатеричный формат

 String hex = String.format("#%02x%02x%02x", r, g, b);

Это вернет гекс в маленьком алфавите, и если вы хотите это в заглавных буквах, просто замените x на X

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...