Определите видимый цвет элементов страницы с помощью JQuery и / или Selenium / Webriver - PullRequest
3 голосов
/ 08 июля 2011

Я ищу способ определения реального видимого цвета элементов страницы.Если я использую JQuery, я могу сделать следующее:

$('#foo').css('background-color');

Но цвет фона #foo может возвращать "прозрачный", даже если один из его родителей объявил цветной фон.Итак, как мне получить правильный цвет, который виден конечным пользователям (включая полупрозрачность / RGBA)?

Обновление

Я использую API-интерфейс Selenium2 Java с Firefox 5. Возможно, естьпуть без JQuery тоже.Возможно использование скриншотов?

Обновление 2

Я перефразировал и расширил вопрос: Получите доминирующий цвет определенной области изображения: цветовой запрос для элементов веб-страницы

1 Ответ

4 голосов
/ 08 июля 2011

Вам нужно будет пройти вверх по дереву, чтобы найти элемент с background-color, один из подходов, который я применил, был таким (где textureEl - элемент, который вы хотите проверить):

bgcolor = $(textureEl).css('background-color'); 
if (isTransparent(bgcolor)){
    $(textureEl).parents().each(function(){
        if (!isTransparent($(this).css('background-color'))){
            bgcolor = $(this).css('background-color');
            return false;
        }

    });
}

и

function isTransparent(bgcolor){
    return (bgcolor=="transparent" || bgcolor.substring(0,4) == "rgba");
}

, но обратите внимание, что моя функция isTransparent сделала любое не 100% -ное значение непрозрачности помеченным как прозрачное, если вы не хотите этого, то переопределите, что делать с rgba цветами.

Это, конечно, тоже не учитывает background-image s, но, поскольку ваш вопрос не упомянул их, и мое приложение не приняло их во внимание, там нечего проверятьизображения.

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