Пример #1
0
        private WindowInfo GetWindowInfo()
        {
            PixelRect?ReadOwnerRect()
            {
                var text = _session.FindElementByAccessibilityId("OwnerRect").Text;

                return(!string.IsNullOrWhiteSpace(text) ? PixelRect.Parse(text) : null);
            }

            var retry = 0;

            for (;;)
            {
                try
                {
                    return(new(
                               Size.Parse(_session.FindElementByAccessibilityId("ClientSize").Text),
                               Size.Parse(_session.FindElementByAccessibilityId("FrameSize").Text),
                               PixelPoint.Parse(_session.FindElementByAccessibilityId("Position").Text),
                               ReadOwnerRect(),
                               PixelRect.Parse(_session.FindElementByAccessibilityId("ScreenRect").Text),
                               double.Parse(_session.FindElementByAccessibilityId("Scaling").Text)));
                }
                catch (OpenQA.Selenium.NoSuchElementException e) when(retry++ < 3)
                {
                    // MacOS sometimes seems to need a bit of time to get itself back in order after switching out
                    // of fullscreen.
                    Thread.Sleep(1000);
                }
            }
        }