当我们使用以下代码运行CodedUI测试用例来关闭对话框弹出窗口(JavaScript警报)时:
CurrentBrowser.PerformDialogAction(BrowserDialogAction.Ok);
或者,使用以下代码:
var popupWindow = new WinWindow(null);
popupWindow.SearchProperties.Add("Name", "Message from webpage", "ClassName", "#32770");
popupWindow.TechnologyName = "MSAA";
var okButton = new WinButton(popupWindow) { TechnologyName = "MSAA" };
okButton.SearchProperties.Add("Name", "OK");
okButton.SetFocus();
Keyboard.SendKeys(okButton, "{ENTER}");
它在本地运行,但是当我们在具有相同版本的Windows和Internet Explorer的VDI上运行via Microsoft Test Manager时,弹出窗口未关闭。没有错误,VDI只是等待。
我们使用以下版本:
TFS 2012更新4测试代理
Internet Explorer 10
Windows 7企业版
有谁知道为什么会这样,以及如何解决?
答案 0 :(得分:1)
通常,您希望在窗口上使用SetFocus而不是按钮。 DrawHighlight在做什么?您是否从Window中删除了ClassName搜索属性?
答案 1 :(得分:0)
原来我在本地使用Visual Studio 2015来运行。构建和MTM使用TFS 2012.CodedUI dll中存在不匹配。显然,在CodedUi中修改了一些可以点击警告框的东西。
删除(旧)dll的条件选择:
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
</ItemGroup>
</When>
来自csproj文件的
和引用更新的版本解决了这个问题。