zoukankan      html  css  js  c++  java
  • CodedUI Test 测试WPF程序,无法获取控件属性值的解决方法

    注意注意!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

    全局方式

    <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,因此可以从后台将多个属性拼接成字符串,传入此值,以达到传出多个属性的目的。

     

     

     

  • 相关阅读:
    hdu In Action
    hdu Bus Pass
    acm steps chapter6总结
    原创:扫雷游戏
    排列组合算法
    原创:泛型方法例子
    原创:QQ群发言统计
    菜鸟也做有道难题①
    查询时带Ntext或nvarchar(Max)到底有多影响速度
    使用正则要注意的几点
  • 原文地址:https://www.cnblogs.com/elvis0123/p/5126882.html
Copyright © 2011-2022 走看看