Ejemplo n.º 1
0
 public virtual Window CreateWindow(SearchCriteria searchCriteria, Process process, InitializeOption option, WindowSession windowSession)
 {
     string message =
         string.Format("Couldn't find window with SearchCriteria {0} in process {1}{2}", searchCriteria, process.Id, Constants.BusyMessage);
     AutomationElement element = WaitTillFound(() => finder.FindWindow(searchCriteria, process.Id), message);
     return Create(element, option, windowSession);
 }
 private Window ModalWindow(Clock.Do find, InitializeOption option, WindowSession windowSession)
 {
     var clock = new Clock(CoreAppXmlConfiguration.Instance.BusyTimeout);
     Clock.Matched matched = obj => obj != null;
     Clock.Expired expired = () => null;
     var automationElement = (AutomationElement) clock.Perform(find, matched, expired);
     return automationElement == null ? null: Create(automationElement, option, windowSession);
 }
Ejemplo n.º 3
0
        public virtual WindowSession WindowSession(InitializeOption initializeOption)
        {
            if (initializeOption.Identifier == null) return new NullWindowSession();

            WindowSession windowSession;
            if (windowSessions.TryGetValue(initializeOption.Identifier, out windowSession)) return windowSession;

            windowSession = new WindowSession(this, initializeOption);
            windowSessions.Add(initializeOption.Identifier, windowSession);
            return windowSession;
        }
        internal static Window Create(AutomationElement element, InitializeOption option, WindowSession windowSession)
        {
            SpecializedWindowFactory specializedWindowFactory = specializedWindowFactories.Find(factory => factory.DoesSpecializedThis(element));
            if (specializedWindowFactory != null)
            {
                return specializedWindowFactory.Create(element, option, windowSession);
            }

            var windowsFramework = new WindowsFramework(element.Current.FrameworkId);
            if (windowsFramework.WinForm) return new WinFormWindow(element, option, windowSession);
            if (windowsFramework.WPF) return new WPFWindow(element, WindowFactory.Desktop, option, windowSession);
            if (windowsFramework.Win32) return new Win32Window(element, WindowFactory.Desktop, option, windowSession);
            if (windowsFramework.UIAutomationBug) return null;
            throw new UIItemSearchException(string.Format("{0} is not supported yet.", windowsFramework));
        }
Ejemplo n.º 5
0
        public virtual WindowSession WindowSession(InitializeOption initializeOption)
        {
            if (initializeOption.Identifier == null)
            {
                return(new NullWindowSession());
            }

            WindowSession windowSession;

            if (windowSessions.TryGetValue(initializeOption.Identifier, out windowSession))
            {
                return(windowSession);
            }

            windowSession = new WindowSession(this, initializeOption);
            windowSessions.Add(initializeOption.Identifier, windowSession);
            return(windowSession);
        }
Ejemplo n.º 6
0
 public virtual Window FindModalWindow(string title, Process process, InitializeOption option, AutomationElement parentWindowElement,
     WindowSession windowSession)
 {
     var windowFinder = new AutomationElementFinder(parentWindowElement);
     try
     {
         AutomationElement modalWindowElement = WaitTillFound(delegate
                                                                  {
                                                                      AutomationElement windowElement = windowFinder.FindWindow(title, process.Id) ??
                                                                                                        finder.FindWindow(title, process.Id);
                                                                      return windowElement;
                                                                  }, "Could not find modal window with title: " + title);
         return Create(modalWindowElement, option, windowSession);
     }
     catch (UIActionException e)
     {
         WhiteLogger.Instance.Debug(e.ToString());
         return null;
     }
 }
Ejemplo n.º 7
0
 public virtual Window CreateWindow(string title, Process process, InitializeOption option, WindowSession windowSession)
 {
     return Create(FindWindowElement(process, title), option, windowSession);
 }
Ejemplo n.º 8
0
 public virtual Window ModalWindow(SearchCriteria searchCriteria, InitializeOption option, WindowSession windowSession)
 {
     return ModalWindow(() => Finder.FindWindow(searchCriteria), option, windowSession);
 }
Ejemplo n.º 9
0
 protected Window(AutomationElement automationElement, InitializeOption initializeOption,
     WindowSession windowSession)
     : base(automationElement, new NullActionListener(), initializeOption, windowSession)
 {
     InitializeWindow();
 }
Ejemplo n.º 10
0
 public virtual Window FindWindow(Process process, Predicate<string> match, InitializeOption initializeOption, WindowSession windowSession)
 {
     string message = string.Format("Could not find window matching condition. ProcessName: {0}, ProcessId: {1}, MatchingConditionMethod: {2}, MatchingConditionTarget: {3}", process.ProcessName, process.Id, match.Method, match.Target);
     AutomationElement foundElement = WaitTillFound(() => FindWindowElement(process, match), message);
     return Create(foundElement, initializeOption, windowSession);
 }
Ejemplo n.º 11
0
 public virtual Window FindModalWindow(SearchCriteria searchCriteria, InitializeOption option, AutomationElement parentWindowElement, WindowSession windowSession)
 {
     var windowFinder = new AutomationElementFinder(parentWindowElement);
     try
     {
         AutomationElement modalWindowElement = WaitTillFound(() =>
         {
             AutomationElement windowElement = windowFinder.FindWindow(searchCriteria) ??
                 Finder.FindWindow(searchCriteria);
             return windowElement;
         }, "Could not find modal window with SearchCriteria: " + searchCriteria);
         return Create(modalWindowElement, option, windowSession);
     }
     catch (UIActionException e)
     {
         logger.Debug(e.ToString());
         return null;
     }
 }
Ejemplo n.º 12
0
 public virtual Window FindWindow(Process process, Predicate<string> match, InitializeOption initializeOption, WindowSession windowSession)
 {
     AutomationElement foundElement =
         WaitTillFound(() => FindWindowElement(process, match), "Could not find window matching condition");
     return Create(foundElement, initializeOption, windowSession);
 }
Ejemplo n.º 13
0
 public SilverlightDocument(AutomationElement automationElement, ActionListener actionListener,
                            InitializeOption initializeOption,
                            WindowSession windowSession)
     : base(automationElement, actionListener, initializeOption, windowSession)
 {
 }
Ejemplo n.º 14
0
 public BrowserWindow(AutomationElement automationElement, WindowFactory windowFactory, InitializeOption option, WindowSession windowSession)
     : base(automationElement, windowFactory, option, windowSession)
 {
 }
 public InternetExplorerWindow(AutomationElement automationElement, WindowFactory windowFactory, InitializeOption option, WindowSession windowSession)
     : base(automationElement, windowFactory, option, windowSession)
 {
 }
 public virtual Window ModalWindow(string title, InitializeOption option, WindowSession windowSession)
 {
     Clock.Do @do = () => finder.FindWindow(title, 0);
     return ModalWindow(@do, option, windowSession);
 }
Ejemplo n.º 17
0
 public virtual Window ModalWindow(string title, InitializeOption option, WindowSession windowSession)
 {
     return ModalWindow(() => Finder.FindWindow(title, 0), option, windowSession);
 }
Ejemplo n.º 18
0
 private Desktop(AutomationElement automationElement, ActionListener actionListener, InitializeOption initializeOption,
                 WindowSession windowSession)
     : base(automationElement, actionListener, initializeOption, windowSession)
 {
     finder = new AutomationElementFinder(automationElement);
 }
Ejemplo n.º 19
0
 public virtual Window Create(AutomationElement automationElement, InitializeOption initializeOption, WindowSession session)
 {
     return new InternetExplorerWindow(automationElement, WindowFactory.Desktop, initializeOption, session);
 }
 public virtual Window ModalWindow(SearchCriteria searchCriteria, InitializeOption option, WindowSession windowSession)
 {
     Clock.Do @do = () => finder.FindWindow(searchCriteria);
     return ModalWindow(@do, option, windowSession);
 }
Ejemplo n.º 21
0
 private static Window ModalWindow(Func<AutomationElement> find, InitializeOption option, WindowSession windowSession)
 {
     var automationElement = Retry.For(find, e => e == null, CoreAppXmlConfiguration.Instance.BusyTimeout());
     return automationElement == null ? null: Create(automationElement, option, windowSession);
 }
Ejemplo n.º 22
0
 public DummyWindow(AutomationElement automationElement, InitializeOption initializeOption, WindowSession windowSession)
     : base(automationElement, initializeOption, windowSession)
 {
 }
Ejemplo n.º 23
0
 public WPFWindow(AutomationElement automationElement, WindowFactory windowFactory, InitializeOption initializeOption,
     WindowSession windowSession)
     : base(automationElement, initializeOption, windowSession)
 {
     this.windowFactory = windowFactory;
 }