Selenium WebElement getCssValue背景颜色歪曲?

时间:2013-07-18 16:06:00

标签: java selenium selenium-webdriver

我正在使用Selenium Webdriver在基于javascript的Web应用程序上自动执行功能测试。 javascript代码(knockout.js)将SELECT下拉列表的OPTION元素之一设置为不同的颜色#FFFFCC,即rgba(255,255,2014,1)(浅黄色)(由firebug验证)。 / p>

我的硒使用代码如下:

    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 
      }
    }

但if语句总是失败。当我对一个option.getCssValue("background-color")的值执行system.out.println()时,它为我的所有选项元素返回'transparent',为我修改的选项元素返回'rgba(51,153,255,1)',转换为十六进制时为#3399FF(蓝色)。

为什么selenium报告此元素的十六进制值不正确?

1 个答案:

答案 0 :(得分:2)

我对这个问题发生的原因有一个很好的理论,而且看起来很可重复。

蓝色是鼠标突出显示时元素背景的颜色。 Selenium似乎拿起那种颜色而不是下拉选项的实际背景颜色。

也许我应该向开发者报告这是一个错误或无意识的功能。