Закрытие окна предупреждения не работает на 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}");

Он работает локально, но когда мы запускаем Microsoft Test Manager на VDI с той же версией Windows и Internet Explorer, всплывающее окно не закрывается. Ошибка не выдается, VDI просто ждет.

Мы используем следующие версии:

TFS 2012 обновление 4 тестовый агент
Internet Explorer 10
Windows 7 Enterprise

Кто-нибудь знает, почему это может быть и как это можно решить?

2 ответа

Решение

Оказалось, что локально я использовал Visual Studio 2015 для запуска. Сборка и MTM использовали TFS 2012. Произошло несоответствие в библиотеках CodedUI. Очевидно, что-то было исправлено в CodedUi, что сделало возможным нажатие на окно предупреждения.

Снятие условного выбора (старых) dll's:

<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 и ссылки на более новые версии решили проблему.

Как правило, вы хотите использовать SetFocus на окне, а не на кнопке. Что делает DrawHighlight? Вы удалили свойство поиска ClassName из Window?

Другие вопросы по тегам