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