MS编码的UI测试搜索属性不获取新的Xaml AutomationID

时间:2017-05-02 17:40:07

标签: xaml coded-ui-tests

我创建了一个简单的MS Coded UI测试和相关的WPF应用程序,试图了解AutomationID。首先,我将AutomationID分配给textBox的Xaml代码。然后,我在textBox中记录输入并创建一个关联的UIMap函数。最初,在textBox的搜索属性中,AutomationID是正确的。但是,如果我更改了xaml AutomationID,搜索属性将不会获取新的AutomationID?这是我的代码和屏幕截图:

' Xaml代码:对于TextBox,我从" TextBoxAutoID01"更改了AutoamtionId。 to" TextBoxAutoID07"

<Grid>
    <CheckBox x:Name="checkBox" Content="CheckBox" HorizontalAlignment="Left" Margin="176,254,0,0" VerticalAlignment="Top" IsEnabled="True"/>
    <TextBox x:Name="textBox1" HorizontalAlignment="Left" Height="23" Margin="176,147,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" AutomationProperties.AutomationId="TextBoxAutoID07"/>

</Grid>` 

在TextBox UIMap搜索属性中,AutomationID仍然是原始的&#34; TextBoxAutoID01&#34;

enter image description here

UIMap.design.cs代码反映新的AutomationID尚未更新:

 public WpfEdit UITextBoxAutoID01Edit
    {
        get
        {
            if ((this.mUITextBoxAutoID01Edit == null))
            {
                this.mUITextBoxAutoID01Edit = new WpfEdit(this);
                #region Search Criteria
                this.mUITextBoxAutoID01Edit.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "TextBoxAutoID01";
                this.mUITextBoxAutoID01Edit.WindowTitles.Add("MainWindow");
                #endregion
            }
            return this.mUITextBoxAutoID01Edit;
        }
    }

因此,此时,进行搜索属性更新的唯一方法是删除UIMap的控件并再次录制。

有关如何更新新的xaml AutomationID而不重新录制UIMap的任何见解将不胜感激。

1 个答案:

答案 0 :(得分:0)

Coded UI测试和WPF应用程序是独立且独立的。改变一个不会导致另一个改变。如果您更改WPF应用程序并生成新的应用程序ID,则需要手动更改Coded UI测试以匹配。

无需删除任何控件,也无需重新记录测试或部分测试。只需更改搜索属性的值 - 请注意该窗口的标题为“#34;编辑搜索属性&#34;”。只需点击&#34;价值&#34;相关财产的领域并改变价值。