diff --git a/src/TestStack.White/UIItems/WindowItems/Win32Window.cs b/src/TestStack.White/UIItems/WindowItems/Win32Window.cs index 406b2807..feb8d73a 100644 --- a/src/TestStack.White/UIItems/WindowItems/Win32Window.cs +++ b/src/TestStack.White/UIItems/WindowItems/Win32Window.cs @@ -1,5 +1,8 @@ +using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using System.Windows.Automation; +using TestStack.White.AutomationElementSearch; using TestStack.White.Factory; using TestStack.White.Sessions; using TestStack.White.UIItems.Finders; @@ -36,6 +39,16 @@ public override Window ModalWindow(string title, InitializeOption option) WindowSession.ModalWindowSession(option)); } + public override List ModalWindows() + { + var descendants = new AutomationElementFinder(automationElement) + .Children(new AutomationSearchConditionFactory().GetWindowSearchConditions(automationElement.Current.ProcessId).ToArray()); + + return descendants + .Select(descendant => ChildWindowFactory.Create(descendant, InitializeOption.NoCache, WindowSession.ModalWindowSession(InitializeOption.NoCache))) + .ToList(); + } + public override Window ModalWindow(SearchCriteria searchCriteria, InitializeOption option) { return windowFactory.ModalWindow(searchCriteria, option, WindowSession.ModalWindowSession(option));