Selenium中getElementValueOfCssProperty返回值不符的技术疑问
问题解答
背景色返回RGBA而非十六进制的原因
你通过element$getElementValueOfCssProperty("background-color")拿到的是元素计算后的最终渲染样式,不是CSS源码里的原始写法。浏览器在渲染页面时,会把所有颜色表示格式(十六进制、颜色名称、RGB)统一转换成RGBA格式返回——这是因为RGBA能同时包含颜色值和透明度信息,是浏览器内部标准化的颜色输出格式,所以不管原始CSS用的哪种写法,最终都会输出RGBA格式的结果。
font-weight返回700而非"bold"的原因及700的含义
原因
调用element$getElementValueOfCssProperty("font-weight")获取的同样是计算后样式,浏览器会把bold这类字体粗细关键字转换成对应的数值权重。在CSS规范中,字体粗细的关键字本质是数值的别名,浏览器会统一用数值形式返回计算后的结果。
700的含义
CSS的字体权重采用100-900的数值体系(间隔为100),常用对应关系如下:
- 100:对应
thin(极细) - 400:对应
normal(常规粗细,默认值) - 700:对应
bold(加粗) - 900:对应
black(特粗)
所以返回700就说明该元素的字体处于加粗状态,和设置font-weight: bold的效果完全一致。
内容的提问来源于stack exchange,提问作者MLEN
相关产品推荐
相关产品推荐

