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); } } }