有时候需要元素的截图,不需要整个截图。整理一个针对元素的截图的方法。

创建一个Java类,实现截取元素的方法

package com.lozz.utils;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File; import javax.imageio.ImageIO; import org.openqa.selenium.OutputType;
import org.openqa.selenium.Point;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.internal.WrapsDriver; /**
* @Title: CreateElementScreenshot.java
* @Package com.lozz.utils
* @Description: TODO(使用WebDriver对特定的WebElement截图)
* @date 2017年7月28日 下午4:20:46
* @version V1.0
*/
public class CreateElementScreenshot { public static File captureElement(WebElement element) throws Exception {
// TODO Auto-generated method stub
WrapsDriver wrapsDriver = (WrapsDriver) element;
// 截图整个页面
File screen = ((TakesScreenshot) wrapsDriver.getWrappedDriver()).getScreenshotAs(OutputType.FILE);
BufferedImage img = ImageIO.read(screen);
// 获得元素的高度和宽度
int width = element.getSize().getWidth();
int height = element.getSize().getHeight();
// 创建一个矩形使用上面的高度,和宽度
Rectangle rect = new Rectangle(width, height);
// 得到元素的坐标
Point p = element.getLocation();
BufferedImage dest = img.getSubimage(p.getX(), p.getY(), rect.width, rect.height);
// 存为png格式
ImageIO.write(dest, "png", screen);
return screen;
} }

在方法中调用此方法实现截取元素的功能

获取到的截图:

可以把相关的截图放置在测试报告中:

(我这使用的是testNG+extentreports生成的报告,具体的extentReports使用方法,使用的第一种方法,可以参照这里

https://www.cnblogs.com/lozz/p/7251315.html

转载注明来源

最新文章

  1. maven pom中 设置远程仓库url
  2. 小结-stm32 驱动LED灯
  3. Linux下串口ttyS2,ttyS3不能用的问题解决办法
  4. 百度地图API使用
  5. MS-SQL Server字符串处理函数大全
  6. 防止横竖屏时,iphone自动缩放的一段js代码
  7. 【转】Android Listener侦听的N种写法
  8. Socket,非阻塞,fcntl
  9. Bellman 算法
  10. json对象的封装与解析
  11. mysql 创建临时节点
  12. php设计模式——UML类图
  13. hdu_5879_Cure(打表)
  14. Spark之UDF
  15. Listener监听器和Filter过滤器
  16. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
  17. 05-TypeScript中的方法新功能(下)
  18. ArcGIS Arcade
  19. 关于JavaScript原型对象那些事儿
  20. 指定webapi 返回 json 格式 ; GlobalConfiguration.Configuration.Formatters.Clear()

热门文章

  1. 在JavaScript中进行文件处理,第五部分:Blobs
  2. 第24课 #pragma使用分析
  3. I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard.sh hacking
  4. 20155211 2016-2017-2 《Java程序设计》第八周学习总结
  5. JAVA四则运算算法
  6. 《DSP using MATLAB》Problem 3.3
  7. graphql-binding openapi 集成demo
  8. 使用UNetbootin制作U盘启动
  9. macOS -- Mac系统如何通过终端使用mysql
  10. MySQL的WHERE语句中BETWEEN与IN的用法和他们的区别