2013-07-18 2 views
3

Я использую Selenium Webdriver для автоматизации функционального тестирования в веб-приложении на основе javascript. Код javascript (knockout.js) устанавливает один из элементов OPTION для выпадающих списков SELECT для другого цвета #FFFFCC, который является rgba (255, 255, 204, 1) (светло-желтый) (как проверено firebug).Selenium WebElement getCssValue цвет фона искажен?

Мой код для использования селена заключается в следующем:

Select select = new Select(driver.findElement(By.id("views"))); // get the select 
    List<WebElement> allOptions = select.getOptions(); // get all the options 

    for (WebElement option : allOptions) { //iterate over the options 
     if (option.getCssValue("background-color").compareToIgnoreCase("rgba(255, 255, 204, 1)") == 0) { 
     // do something 
     } 
    } 

Но что, если оператор всегда терпит неудачу. Когда я делаю system.out.println() до значения option.getCssValue("background-color"), он возвращает «прозрачный» для всех моих опционных элементов и «rgba (51, 153, 255, 1)» для моего модифицированного элемента option, который при преобразовании в hex # 3399FF (синий цвет).

Почему селен сообщает о неправильном шестнадцатеричном значении для этого элемента?

+0

Итак, вы проверяете 'background-color' или только' color' элемента – Amey

+0

Фоновый цвет – Husman

ответ

2

У меня есть хорошая теория о том, почему эта проблема происходит, и она кажется воспроизводимой.

Синий цвет - это цвет фона элементов при подсвечивании мышью. Кажется, что Selenium забирает этот цвет вместо фактического цвета фона в раскрывающемся списке.

Возможно, я должен сообщить об этом как об ошибке или непреднамеренной функции для разработчиков.

Смежные вопросы