/// <summary> /// To capture Page Source during execution /// </summary> /// <param name="appiumDriver">The AppiumDriver</param> /// <param name="testObject">The TestObject to associate the file and log with</param> /// <param name="directory">The directory file path</param> /// <param name="fileNameWithoutExtension">Filename without extension</param> /// <returns>Path to the log file</returns> public static string SavePageSource(this AppiumDriver <IWebElement> appiumDriver, AppiumTestObject testObject, string directory, string fileNameWithoutExtension) { // Save the current page source into a string string pageSource = appiumDriver.PageSource; // Make sure the directory exists if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } // Calculate the file name string path = Path.Combine(directory, fileNameWithoutExtension + ".txt"); // Create new instance of Streamwriter and Auto Flush after each call StreamWriter writer = new StreamWriter(path, false) { AutoFlush = true }; // Write page source to a new file writer.Write(pageSource); writer.Close(); testObject.AddAssociatedFile(path); return(path); }
/// <summary> /// To capture a screenshot during execution /// </summary> /// <param name="appiumDriver">The AppiumDriver</param> /// <param name="testObject">The TestObject to associate the screenshot with</param> /// <param name="directory">The directory file path</param> /// <param name="fileNameWithoutExtension">Filename without extension</param> public static void CaptureScreenshot(this AppiumDriver <IWebElement> appiumDriver, AppiumTestObject testObject, string directory, string fileNameWithoutExtension) { Screenshot screenshot = ((ITakesScreenshot)appiumDriver).GetScreenshot(); string path = Path.Combine(directory, fileNameWithoutExtension + ".Png"); screenshot.SaveAsFile(path, ScreenshotImageFormat.Png); testObject.AddAssociatedFile(path); }