[英]White UI Automation framework: back colour
我在我的项目中使用White UI自动化进行测试。 我被困在需要获得控件背景颜色的位置。 请问任何示例代码?
如果您使用的是测试应用程序,则可以创建文本框并将文本框的文本绑定到控件的背景。 然后,您可以轻松地测试文本框的文本。
不幸的是,使用White可能无法做到这一点。 但是,Windows确实提供了一些可以帮助您的方法。 如果您正在使用间谍工具并且您正在查看的控件具有TextPattern,则可以获取控件的背景颜色。
具体来说,您可以尝试获取这样的模式(其中myElement的类型为AutomationElement):
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库获得控件的矩形并识别颜色。
例如,当您键入不正确的值时,如果在文本框中识别红框,则进程将如下:
我知道这是一个很好的解决方案,但它总比没有好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.