关闭警报框不能通过测试代理在VDI上运行

时间:2015-09-30 15:26:24

标签: coded-ui-tests mtm

当我们使用以下代码运行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企业版

有谁知道为什么会这样,以及如何解决?

2 个答案:

答案 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文件的

和引用更新的版本解决了这个问题。