我在我的项目中使用白色UI自动化进行测试。 我卡在了一个点上,需要获取控件的背景颜色。 请提供任何示例代码?
我在我的项目中使用白色UI自动化进行测试。 我卡在了一个点上,需要获取控件的背景颜色。 请提供任何示例代码?
var textPattern = myElement.GetCurrentPattern(TextPattern.Pattern) as TextPattern;
如果您能够获取TextPattern类型的实例,则可以执行以下操作:
var bgColor = textPattern.DocumentRange.GetAttributeValue(TextPattern.BackgroundColorAttribute)
这将返回一个普通的对象,然后需要进行拆箱操作。如果存在多个背景颜色,则等于TextPattern.MixedAttributeValue。否则,它将是与RGB颜色相对应的int类型的数字,因此进行强制转换即可获得所需的值:
var color = (int) bgColor;
当然,如果您感兴趣的控件的ControlType不是Text,则很遗憾无法实现此操作。我猜白盒UI自动化没有这样的属性,但是您可以使用.Net库获取控件的矩形并识别颜色。
我知道这是一种暴力解决方案,但总比没有好。