繁体   English   中英

白色UI自动化框架:背面颜色

[英]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库获得控件的矩形并识别颜色。


例如,当您键入不正确的值时,如果在文本框中识别红框,则进程将如下:

  1. 使用UI Automation获取控件的矩形。
  2. 使用.Net库制作此矩形的屏幕截图。
  3. 使用.Net库浏览所有像素,并验证在此矩形中,我们有超过30个红色像素。

我知道这是一个很好的解决方案,但它总比没有好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM