我在项目中使用White UI自动化进行测试。我被困在需要获取控件的背景色的位置。请提供任何示例代码?
最佳答案
不幸的是,使用怀特可能无法做到这一点。但是Windows确实提供了一些您可以调用的方法,这些方法可能会对您有所帮助。如果使用间谍工具,并且正在查看的控件具有可用的TextPattern,则可以获取控件的背景色。
具体来说,您可以尝试获取如下模式(其中myElement为AutomationElement类型):var textPattern = myElement.GetCurrentPattern(TextPattern.Pattern) as TextPattern;
如果能够获取类型为TextPattern的实例,则可以执行以下操作:var bgColor = textPattern.DocumentRange.GetAttributeValue(TextPattern.BackgroundColorAttribute)
这将返回一个普通的旧对象,然后您需要将其拆箱。如果有多种背景色,它将等于TextPattern.MixedAttributeValue
。否则,它将是类型为int
的数字,对应于RGB颜色,因此强制转换应该可以为您提供所需的值:var color = (int) bgColor;
当然,如果您感兴趣的控件的ControlType不是Text,那么很不幸。
希望这可以帮助!