CodedUI Test 测试WPF程序,无法获取控件属性值的解决方法
2016-01-13 12:32
501 查看
注意注意!ItemStatus 在VS2010的CUIT里面是没有的!需要2013以上的版本才可使用。
公司新程序使用WPF制作,但使用CodedUI Test进行自动化测试的时候,很多控件抓取不到其属性。
比如某输入框的逻辑是当输入错误值的时候,BorderBrush为红色。
当使用CodedUI Test测试发现将其放到WpfEdit并没有BorderBrush的这个属性,无法进行行为判断。
参考
How To: Validate background color or other custom properties of WPF control in Coded UI Test
全局方式
控件方式
确认可以成功实现将BorderBrush传出到ItemStatus,无论是全局的方式还是只修改一个控件。
对于此方法的弊端,原博主给出了两条
1 需要修改被测试代码。这个理论修改量并不多,但为了做自动化,不得不将其加上。因此在设计的时候,可以直接考虑到此值,或某些需要传出的值。在代码编写阶段就将其加入。
2 只能绑定一个属性。这里我想因为绑定的是一个value,因此可以从后台将多个属性拼接成字符串,传入此值,以达到传出多个属性的目的。
公司新程序使用WPF制作,但使用CodedUI Test进行自动化测试的时候,很多控件抓取不到其属性。
比如某输入框的逻辑是当输入错误值的时候,BorderBrush为红色。
当使用CodedUI Test测试发现将其放到WpfEdit并没有BorderBrush的这个属性,无法进行行为判断。
参考
How To: Validate background color or other custom properties of WPF control in Coded UI Test
全局方式
<Window.Resources> <Style TargetType="TextBox"> <Setter Property="AutomationProperties.ItemStatus" Value="{Binding RelativeSource={RelativeSource Self}, Path=BorderBrush}" /> </Style> </Window.Resources>
控件方式
<TextBox Name="MyTextBox" AutomationProperties.ItemStatus="{Binding RelativeSource={RelativeSource Self}, Path=BorderBrush}"></TextBox>
确认可以成功实现将BorderBrush传出到ItemStatus,无论是全局的方式还是只修改一个控件。
对于此方法的弊端,原博主给出了两条
1 需要修改被测试代码。这个理论修改量并不多,但为了做自动化,不得不将其加上。因此在设计的时候,可以直接考虑到此值,或某些需要传出的值。在代码编写阶段就将其加入。
2 只能绑定一个属性。这里我想因为绑定的是一个value,因此可以从后台将多个属性拼接成字符串,传入此值,以达到传出多个属性的目的。
相关文章推荐
- iOS 编程中 UI 部分UITableView基础知识
- UITableView的分割线去除左侧15像素从最左边开始绘制
- iOS UIDynamic动画
- UILabel的使用及常用属性的设置
- 限制UITextField输入字数(系统输入法候选输入同样适用)
- hdu 1005 Number Sequence
- 在唯一密钥属性“value”设置为“Service.svc”时,无法添加类型为“add”的重复集合项
- iOS UI 之UILable
- UI组件之TextView及其子类(五)计时器Chronometer
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing
- KVO (Key-Value Observing) 实现机制
- iOS里面尽量的避免两件事情的耦合性--ui刷新不应该和任何的事情耦合
- UIImage和Base64格式图片相互转化!
- ios常见错误之 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
- 解决集成支付宝报一堆warning: (arm64) /Users/scmbuild/workspace/standard-pay/.....警告问题
- UiAutomator——Android自动化测试工具简要介绍
- 【java】java 设计模式(4):建造者模式(Builder)
- 【已解决】finished with non-zero exit value 2
- The default for KeyValuePair
- Handler,Message,Looper & MessageQueue