作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 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 报告此元素的十六进制值不正确?
最佳答案
关于为什么会出现这个问题,我有一个很好的理论,而且它似乎可以重现。
蓝色是用鼠标突出显示时元素背景的颜色。 Selenium 似乎选择了那种颜色,而不是下拉选项的实际背景颜色。
也许我应该将其作为错误或意外功能报告给开发人员。
关于java - Selenium WebElement getCssValue 背景颜色被歪曲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17728623/
我是一名优秀的程序员,十分优秀!