03
Dec

ake multiple screenshots in Selenium WebDriver

// Take multiple screenshots in Selenium WebDriver
	public static void takeMultipleScreeShot(String fileName) {
		JavascriptExecutor exe = (JavascriptExecutor)driver;
		exe.executeScript("window.scrollTo(0,0)");
		Boolean a = (Boolean) exe.executeScript("return document.documentElement.scrollHeight>document.documentElement.clientHeight");
		Long clientH = (Long)exe.executeScript("return document.documentElement.clientHeight");
		Long scrollH = (Long)exe.executeScript("return document.documentElement.scrollHeight");
		int index = 1;
		if(a.booleanValue() && !"firefox".equalsIgnoreCase(file.getBrowser())){
			while(scrollH.intValue() > 0){
				GenericHelper.takeScreenShot(fileName + "-" + index);
				GenericHelper.executeScript("window.scrollTo(0," + clientH * index + ")");
				scrollH = scrollH - clientH;
				oLog.info(" Screen Shot Taken : " + index);
				index++;
			}
		}else
			GenericHelper.takeScreenShot(fileName);
	}
	public static void takeScreenShot(String fileName) {
		
		date = new SimpleDateFormat("dd-MM-yyyy");
		cal = Calendar.getInstance();
		
		String folderName = "" + date.format(cal.getTime());
		String path = getRootPath() + "screenshot" + System.getProperty("file.separator") + folderName;
		
		folder = new File(path);
		
		if(!folder.exists())
			folder.mkdir();
		
		try {
			File src = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
			FileUtils.copyFile(src, new File(path + System.getProperty("file.separator") + fileName + ".jpg"));
			oLog.info(" ScreenShot File : " + fileName + ".jpg");
		} catch (IOException e) {
			e.printStackTrace();
			oLog.fatal(" IOException : ", e);
		}
		
	}
	public static Object executeScript(String script) {
		JavascriptExecutor exe = (JavascriptExecutor)driver;
		return (exe.executeScript(script));
		
	}