Ejemplo n.º 1
0
        public void ErrorGetClosedSessionElementScreenshot()
        {
            // Launch calculator for this specific test case
            DesiredCapabilities appCapabilities = new DesiredCapabilities();

            appCapabilities.SetCapability("app", CommonTestSettings.CalculatorAppId);
            WindowsDriver <WindowsElement> calculatorSession = new WindowsDriver <WindowsElement>(new Uri(CommonTestSettings.WindowsApplicationDriverUrl), appCapabilities);

            Assert.IsNotNull(calculatorSession);
            Assert.IsNotNull(calculatorSession.SessionId);

            try
            {
                calculatorSession.Close();
                WindowsElement element = calculatorSession.FindElementByAccessibilityId("AppNameTitle");
                element.GetScreenshot();
                Assert.Fail("Exception should have been thrown because there is no such window");
            }
            catch (System.InvalidOperationException exception)
            {
                Assert.AreEqual("Currently selected window has been closed", exception.Message);
            }

            calculatorSession.Quit();
            calculatorSession = null;
        }
Ejemplo n.º 2
0
        public void ErrorGetStaleElementScreenshot()
        {
            session.FindElementByAccessibilityId("StopwatchPivotItem").Click();
            WindowsElement element     = session.FindElementByAccessibilityId("StopwatchPlayPauseButton");
            var            screenshot1 = element.GetScreenshot();

            using (MemoryStream msScreenshot1 = new MemoryStream(screenshot1.AsByteArray))
            {
                Image screenshotImage1 = Image.FromStream(msScreenshot1);
                Assert.IsTrue(screenshotImage1.Height > 0);
                Assert.IsTrue(screenshotImage1.Width > 0);
            }

            session.FindElementByAccessibilityId("WorldClockPivotItem").Click();
            System.Threading.Thread.Sleep(1000); // Sleep for 1 second to allow screen to switch fully

            var screenshot = element.GetScreenshot();

            Assert.Fail("Exception should have been thrown because element is stale");
        }
Ejemplo n.º 3
0
        public void GetElementScreenshot()
        {
            WindowsDriver <WindowsElement> desktopSession = null;

            try
            {
                // Locate the AlarmPivotItem element in Alarms & Clock app to be captured
                WindowsElement             alarmPivotItem1           = session.FindElementByAccessibilityId(AlarmTabAutomationId);
                OpenQA.Selenium.Screenshot alarmPivotItemScreenshot1 = alarmPivotItem1.GetScreenshot();

                // Save the AlarmPivotItem screenshot capture locally on the machine running the test
                alarmPivotItemScreenshot1.SaveAsFile(@"ScreenshotAlarmPivotItem.png", ScreenshotImageFormat.Png);

                // Using the Desktop session, locate the same AlarmPivotItem element in Alarms & Clock app to be captured
                desktopSession = Utility.CreateNewSession(CommonTestSettings.DesktopAppId);
                WindowsElement             alarmPivotItem2           = desktopSession.FindElementByAccessibilityId(AlarmTabAutomationId);
                OpenQA.Selenium.Screenshot alarmPivotItemScreenshot2 = alarmPivotItem2.GetScreenshot();

                // Using the Desktop session, locate the Alarms & Clock app top level window to be captured
                WindowsElement             alarmsClockWindowTopWindow           = desktopSession.FindElementByName("Alarms & Clock");
                OpenQA.Selenium.Screenshot alarmsClockWindowTopWindowScreenshot = alarmsClockWindowTopWindow.GetScreenshot();

                using (MemoryStream msScreenshot1 = new MemoryStream(alarmPivotItemScreenshot1.AsByteArray))
                    using (MemoryStream msScreenshot2 = new MemoryStream(alarmPivotItemScreenshot2.AsByteArray))
                        using (MemoryStream msScreenshot3 = new MemoryStream(alarmsClockWindowTopWindowScreenshot.AsByteArray))
                        {
                            // Verify that the element screenshot has a valid size
                            Image screenshotImage1 = Image.FromStream(msScreenshot1);
                            Assert.AreEqual(alarmPivotItem1.Size.Height, screenshotImage1.Height);
                            Assert.AreEqual(alarmPivotItem1.Size.Width, screenshotImage1.Width);

                            // Verify that the element screenshot captured using the Alarms & Clock session
                            // is identical in size with the one taken using the desktop session
                            Image screenshotImage2 = Image.FromStream(msScreenshot2);
                            Assert.AreEqual(screenshotImage1.Height, screenshotImage2.Height);
                            Assert.AreEqual(screenshotImage1.Width, screenshotImage2.Width);

                            // Verify that the element screenshot is smaller in size compared to the application top level window
                            Image screenshotImage3 = Image.FromStream(msScreenshot3);
                            Assert.AreEqual(alarmsClockWindowTopWindow.Size.Height, screenshotImage3.Height);
                            Assert.AreEqual(alarmsClockWindowTopWindow.Size.Width, screenshotImage3.Width);
                            Assert.IsTrue(screenshotImage3.Height > screenshotImage1.Height);
                            Assert.IsTrue(screenshotImage3.Width > screenshotImage1.Width);
                        }
            }
            finally
            {
                if (desktopSession != null)
                {
                    desktopSession.Quit();
                }
            }
        }
Ejemplo n.º 4
0
        public void GetElementScreenshot()
        {
            WindowsElement element    = session.FindElementByAccessibilityId("AddAlarmButton");
            var            screenshot = element.GetScreenshot();

            using (MemoryStream msScreenshot = new MemoryStream(screenshot.AsByteArray))
            {
                Image screenshotImage = Image.FromStream(msScreenshot);
                Assert.IsTrue(screenshotImage.Height > 0);
                Assert.IsTrue(screenshotImage.Width > 0);
            }
        }
Ejemplo n.º 5
0
        public void ThenImageWithSidesIsFound(int sideNum)
        {
            WindowsElement inkCanvas = paintPomBase.GetCanvas();

            Screenshot screenShot = inkCanvas.GetScreenshot();

            using (var memoryStream = new MemoryStream(screenShot.AsByteArray))
                using (Bitmap bitmap = new Bitmap(memoryStream))
                {
                    itemsFound = ImageObjectDetection.FindNSidedElement(bitmap, sideNum, false);
                    Console.WriteLine($"itemsFound= {itemsFound.Length}");
                    Assert.IsTrue(itemsFound.Length == 1);
                };
        }
Ejemplo n.º 6
0
        public void Test_15_Screenshot()
        {
            Screenshot sessionshot = session.GetScreenshot();

            Assert.IsNotNull(sessionshot);

            // Save Session ScreenShot to ImageFile
            sessionshot.SaveAsFile("/SessionScreenShot.png", ImageFormat.Png);
            // Get Session ScreenShot Base64EncodingString
            String base64str = sessionshot.AsBase64EncodedString;

            WindowsElement element     = session.FindElementByAccessibilityId("mainframe.ChildFrame00.form.TextArea00");
            Screenshot     elementshot = element.GetScreenshot();

            Assert.IsNotNull(elementshot);

            // Save Element ScreenShot to ImageFile
            elementshot.SaveAsFile("/ElementScreenShot.png", ImageFormat.Png);
            // Get Element ScreenShot Base64EncodingString
            String base64strelement = elementshot.AsBase64EncodedString;
        }