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