2016-12-15 4 views
0

Я новичок в C# и TestStack.White,как получить всплывающее окно с помощью TestStack.White и C#

приложение, которое я тестирую (пытается ....) это приложение WPF.

У меня есть окно с всплывающим оконным окном, и я хочу его закрыть.

У меня нет AutomationId на эти всплывающие окна :(

У меня есть MainWindow и MainWindow.HasPopup() возвращает истину :)

Но я не знаю, чтобы получить список (TestStack .White.UIItems.WindowItems.Window) из моего MainWindow, так что я могу сделать: Foreach _windItem ... _windItem .Close();

Заранее благодарю!

EyalS.

+0

Добро пожаловать в переполнение стека! Ознакомьтесь с нашим [Контрольным списком вопросов] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), чтобы помочь вам задать хороший вопрос и, таким образом, получить хороший ответ. –

ответ

0

Должно быть Popup Недвижимость на Окна. HasPopup фактически проверяет свойство popup. Я думаю, что лучший способ сделать это - попросить приложение для всех его окон, а затем закрыть все из них, кроме того, у которого есть свойство, которое обозначает его как основное окно. Вот пример в Белом, как это сделать.

Application application = Application.Launch("Path to Application"); 
foreach (Window window in application.GetWindows()) 
{ 
    if (window.AutomationElement.Current.AutomationId == "MainWindow") continue; 
    window.Close(); 
} 

Я также предлагаю смотреть в FlaUI, потому что API-интерфейсы FlaUI делают его намного проще, чтобы получить на информации в AutomationElement без добавления зависимостей к подстилающей основе, белые оберточная. Плюс белый имеет много свойств, которые не работают так, как вы думаете, они хотели бы, например, свойство Popup.

+0

Спасибо, я попытаюсь воспроизвести, если его работа :) – EyalS