51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1579|回复: 0
打印 上一主题 下一主题

CodedUI Test 测试WPF程序,无法获取控件属性值的解决方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-13 15:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注意注意!ItemStatus 在VS2010的CUIT里面是没有的!需要2013以上的版本才可使用。



公司新程序使用WPF制作,但使用CodedUI Test进行自动化测试的时候,很多控件抓取不到其属性。



比如某输入框的逻辑是当输入错误值的时候,BorderBrush为红色。

当使用CodedUI Test测试发现将其放到WpfEdit并没有BorderBrush的这个属性,无法进行行为判断。

参考

  1. How To: Validate background color or other custom properties of WPF control in Coded UI Test

  2. 全局方式

  3. <Window.Resources>
  4.     <Style TargetType="TextBox">
  5.         <Setter Property="AutomationProperties.ItemStatus"
  6.                 Value="{Binding RelativeSource={RelativeSource Self}, Path=BorderBrush}" />
  7.     </Style>
  8. </Window.Resources>


  9. 控件方式

  10. <TextBox Name="MyTextBox"
  11.         AutomationProperties.ItemStatus="{Binding
  12.                 RelativeSource={RelativeSource Self}, Path=BorderBrush}"></TextBox>
复制代码


确认可以成功实现将BorderBrush传出到ItemStatus,无论是全局的方式还是只修改一个控件。



对于此方法的弊端,原博主给出了两条

1 需要修改被测试代码。这个理论修改量并不多,但为了做自动化,不得不将其加上。因此在设计的时候,
可以直接考虑到此值,或某些需要传出的值。在代码编写阶段就将其加入。

2 只能绑定一个属性。这里我想因为绑定的是一个value,因此可以从后台将多个属性拼接成字符串,传入
此值,以达到传出多个属性的目的。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 10:45 , Processed in 0.060183 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表