通过测试代理关闭警告框对VDI不起作用



当我们用以下代码运行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上运行时,弹出窗口不会关闭。没有抛出错误,VDI只是等待。

我们使用以下版本:

TFS 2012 update 4测试代理
Internet Explorer 10
Windows 7企业版

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

一般来说,你想在窗口而不是按钮上使用SetFocus。DrawHighlight在做什么?你是否从窗口中删除了ClassName搜索属性?

原来我在本地使用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文件和引用新版本解决了这个问题。

最新更新