我创建了一个简单的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;
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的任何见解将不胜感激。
答案 0 :(得分:0)
Coded UI测试和WPF应用程序是独立且独立的。改变一个不会导致另一个改变。如果您更改WPF应用程序并生成新的应用程序ID,则需要手动更改Coded UI测试以匹配。
无需删除任何控件,也无需重新记录测试或部分测试。只需更改搜索属性的值 - 请注意该窗口的标题为“#34;编辑搜索属性&#34;”。只需点击&#34;价值&#34;相关财产的领域并改变价值。