C# 编码的UI测试和MessageBox出现问题-搜索条件
我目前正在将UI测试转移到CodedUI测试。现在,我面临以下问题: 在我的单元测试中,我调用位于UIMap中的方法两次。该方法包含一个片段,用于检查MessageBox窗口是否打开,并具有一个布尔参数,用于切换单击MessageBox中的确认按钮还是取消按钮。Messagebox从不更改(表示其标题、文本和按钮) 第一次呼叫每次都能正常工作。 在第二次调用期间,Messagebox弹出,但测试框架无法找到它 CodedUiTestBuilder分配给MessageBox的搜索条件是其名称(Info)和类名(#32770) 有人对这里可能出现的问题有什么提示吗?这是MessageBox控件中缺少的一些可访问性吗 问候,C# 编码的UI测试和MessageBox出现问题-搜索条件,c#,.net,winforms,coded-ui-tests,C#,.net,Winforms,Coded Ui Tests,我目前正在将UI测试转移到CodedUI测试。现在,我面临以下问题: 在我的单元测试中,我调用位于UIMap中的方法两次。该方法包含一个片段,用于检查MessageBox窗口是否打开,并具有一个布尔参数,用于切换单击MessageBox中的确认按钮还是取消按钮。Messagebox从不更改(表示其标题、文本和按钮) 第一次呼叫每次都能正常工作。 在第二次调用期间,Messagebox弹出,但测试框架无法找到它 CodedUiTestBuilder分配给MessageBox的搜索条件是其名称(In
Seb您可以从测试方法中刷新地图。因此,当您第二次在分部类中调用该方法时,只需放入类似UIMap MapName=new UIMap()的内容;然后,这将刷新地图,您可以再次调用窗口,而不会出现刷新问题
public void MyUiMethod(bool p)
{
UIMap MapName = new UIMap();
//...variable initialization...
ApplicationUnderTest app = ApplicationUnderTest.Launch(@"some.exe");
try
{
//... get to the point that triggers the MB to show...
Assert.AreEqual(true, MapName.uImessageBoxWindow.Exists);
UIMap MapName = new UIMap();
if (p)
Mouse.Click(MapName.uIConfirmButton, new Point(39, 16));
else
Mouse.Click(MapName.uICancelButton, new Point(49, 8));
}
finally
{
app.Close();
}
}
希望这有帮助
public void MyUiMethod(bool p)
{
UIMap MapName = new UIMap();
//...variable initialization...
ApplicationUnderTest app = ApplicationUnderTest.Launch(@"some.exe");
try
{
//... get to the point that triggers the MB to show...
Assert.AreEqual(true, MapName.uImessageBoxWindow.Exists);
UIMap MapName = new UIMap();
if (p)
Mouse.Click(MapName.uIConfirmButton, new Point(39, 16));
else
Mouse.Click(MapName.uICancelButton, new Point(49, 8));
}
finally
{
app.Close();
}
}