根据getCssValue()的文档:
如果可能,颜色值将转换为十六进制表示(例如#00ff00而不是rgb(0,255,0))。
在我们的项目中从来没有这样,它总是被返回的rgba。这不是一个大问题,因为我只是在我的测试中使用rgba值,但我希望了解为什么它不可能"在我的情况下返回十六进制颜色?
我能想到的唯一合乎逻辑的答案是浏览器如何解释它......但是,当我检查这些元素时,我会在开发工具中看到它们的十六进制代码。它根本不需要转换颜色值...我只是更容易获取该值,而不是每次使用工具将十六进制转换为rgba。
举个例子:
var elem = $('h2');
expect(elem.getCssValue('color')).toEqual('#F8652A');
// failed test returns:
Expected 'rgba(248, 101, 42, 1)' to equal '#F8652A'.
在什么情况下会返回十六进制代码(默认值),而不是每次为我们返回的rgba?