无头模式下selenium实现长截图(Java版本)

场景

无头模式下使用selenium截图时经常遇到有滚动条的界面内容截不全的问题,通过各种渠道找到了解决方案,现记录如下

代码

		JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
		//获取网页最大宽度,适用于有滚动条等页面内容展示不全的情形
		int maxWidth = Integer.parseInt(String.valueOf(javascriptExecutor.executeScript("return Math.max(document.body.scrollWidth,document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);")));
		//获取网页最大高度,适用于有滚动条等页面内容展示不全的情形
		int maxHeight = Integer.parseInt(String.valueOf(javascriptExecutor.executeScript("return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);")));
		//设定浏览器宽高为最大宽高
		driver.manage().window().setSize(new Dimension(maxWidth,maxHeight));
		//截图
		File srcfile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
		try {
			FileUtils.copyFile(srcfile, new File("C:/Users/dell/Downloads/shot.png"));
		} catch (IOException e) {
			e.printStackTrace();
		}

你可能感兴趣的:(selenium,selenium,javascript,前端)