WebDriver中实现对特定的Web区域截图方法

 更新时间:2015年06月10日 09:48:15   投稿:junjie   我要评论
这篇文章主要介绍了WebDriver中实现对特定的Web区域截图方法,本文直接给出实现代码,需要的朋友可以参考下

用过 WebDriver 的同学都知道,WebDriver 可以对浏览器中的页面进行截图。例如:

public byte[] takeScreenshot() throws IOException {
 TakesScreenshot takesScreenshot = (TakesScreenshot) driver;
 return takesScreenshot.getScreenshotAs(OutputType.BYTES);
}


这样产生的图片是整个网页。但有时候我们并不需要整个网页,只需要某些特定的 WebElement,以避免一些干扰。

虽然 WebDriver 本身没有提供这样的 API,不过我们可以自己来,就是在全屏的截图中再进行裁剪,如下:

public BufferedImage createElementImage(WebElement webElement)
 throws IOException {
 // 获得webElement的位置和大小。
 Point location = webElement.getLocation();
 Dimension size = webElement.getSize();
 // 创建全屏截图。
 BufferedImage originalImage =
  ImageIO.read(new ByteArrayInputStream(takeScreenshot()));
 // 截取webElement所在位置的子图。
 BufferedImage croppedImage = originalImage.getSubimage(
  location.getX(),
  localtion.getY(),
  size.getWidth(),
  size.getHeight());
 return croppedImage;
}


其中 ImageIO 和 BufferedImage 分别来自 javax.imageio 和 java.awt.image。

这种方法可以很好的削减截图的大小,也避免了一些不确定因素(比如日期时间等),是测试中保存截图的很好的方式。

注:如果测试的网页中含有 iframe,则需要使用更复杂的方式计算 WebElement 的位置,详见:计算网页中某个元素的位置。

相关文章

  • SpringBoot JPA实现查询多值

    SpringBoot JPA实现查询多值

    这篇文章主要为大家详细介绍了SpringBoot JPA实现查询多值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • MyBatis 执行动态 SQL语句详解

    MyBatis 执行动态 SQL语句详解

    大家对mybatis执行任意sql语句都了解,那么MyBatis执行动态SQL语句呢?下面澳门金沙网上娱乐小编给大家解答下mybatis执行动态sql语句的方法,非常不错,感兴趣的朋友参考下吧
    2016-08-08
  • SpringBoot加入Guava Cache实现本地缓存代码实例

    SpringBoot加入Guava Cache实现本地缓存代码实例

    这篇文章主要介绍了SpringBoot加入Guava Cache实现本地缓存代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 通过Java测试几种压缩算法的性能(附测试代码下载)

    通过Java测试几种压缩算法的性能(附测试代码下载)

    这篇文章主要介绍了通过Java测试几种压缩算法的实际性能的一个实验,包括Java自带的deflate与GZIP压缩方式,还是有一定借鉴意义的,需要的朋友可以参考下
    2015-12-12
  • Spring boot工具类静态属性注入及多环境配置详解

    Spring boot工具类静态属性注入及多环境配置详解

    这篇文章主要为大家详细介绍了Spring boot工具类静态属性注入,及多环境配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • java正则表达式提取数字的方法实例

    java正则表达式提取数字的方法实例

    这篇文章主要介绍了java正则表达式提取数字的方法,还有去除字符串数字的方法,大家参考使用吧
    2013-12-12
  • Spring官网下载各版本jar包的方法

    Spring官网下载各版本jar包的方法

    这篇文章主要介绍了Spring官网下载各版本jar包的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 浅谈xml配置spring profiles的几个注意点

    浅谈xml配置spring profiles的几个注意点

    这篇文章主要介绍了浅谈xml配置spring profiles的几个注意点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 简单了解Java synchronized关键字同步

    简单了解Java synchronized关键字同步

    这篇文章主要介绍了简单了解Java synchronized关键字同步,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 走进SpringBoot之配置文件与多环境详解

    走进SpringBoot之配置文件与多环境详解

    这篇文章主要介绍了走进SpringBoot之配置文件与多环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论