我正在使用 Selenium Webdriver 对基于 javascript 的 Web 应用程序进行自动功能测试。javascript 代码 (knockout.js) 将 SELECT 下拉列表的 OPTION 元素之一设置为不同的颜色#FFFFCC,即 rgba(255, 255, 204, 1)(浅黄色)(由 firebug 验证)。
我供 selenium 使用的代码如下:
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() 时,我的所有选项元素返回“透明”,修改后的选项元素返回“rgba(51,153,255,1)”,当转换为十六进制时#3399FF(蓝色)。
为什么 selenium 报告此元素的十六进制值不正确?