我想检查html页面中某个元素的颜色。该元素的颜色是用javascript设置的,请看图片x1c 0d1x
div-id为“Ab_banco_M1T1_switch”的元素可以假设4个值,当然根据“val”变量的值只显示其中一个值。val变量是从服务器以某种方式设置的,看起来脚本每X秒轮询服务器一次,并更新val的值。
我已经尝试得到元素的颜色如下:
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("Ab_banco_M1T1_switch")));
element.getAttribute("background")
element.getAttribute("style")
element.getAttribute("background-color")
element.getCssValue("style")
element.getCssValue("color")
如果不成功,则返回“null”或页面的背景色。
获取颜色的唯一方法是使用Xpath /html/body/div/div[2]/div[2]/div[2]/div/div/div/div[3]/div (for red, if I want the green /html/body/div/div[2]/div[2]/div[2]/div/div/div/div[2]/div)
但这不是我想要的,Xpath确实对元素进行了本地化,但它没有告诉我显示的颜色是红色还是其他颜色,我只能通过查看网页来知道。
换句话说,我想像Firebug一样访问当前显示的颜色,请看右侧的面板,您可以看到element.style ->background-Color = red
。
当我调用元素getCssCValue("background-color")
时,我得到了#body_right_div
的背景色。
先谢谢你。
5条答案
按热度按时间mwngjboj1#
您可以通过以下方式获得元素颜色(元素的背景颜色):
您可以通过以下方式获取元素文本/标题颜色:
例如,如果你想获得LinkedIn的“登录”按钮的背景和文本颜色,代码如下:
4sup72z82#
试试这个,对我来说很完美:
所以你可以用
getCssValue("color");
和getCssValue("background-color");
得到颜色。但是,那是RGB格式的,所以你需要转换成十六进制。用十六进制代码,你可以比较值并打印出来,这样你就可以看到你在每个getCssValue
之后得到了什么。luaexgnf3#
使用XPath,你可以尝试通过属性来搜索。例如
//div[@style='background: red']
。如果你想获得颜色,那么对于CSS,我会使用方法getCSSValue()6tdlim6h4#
尝试以下代码
r6vfmomb5#
如果你想用selenium按名称验证颜色,你可以在utils文件中添加这个类,并在测试中使用它来验证颜色。
} }'
此类用法的示例。