一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - WebDriver中實現(xiàn)對特定的Web區(qū)域截圖方法

WebDriver中實現(xiàn)對特定的Web區(qū)域截圖方法

2019-12-21 14:48junjie JAVA教程

這篇文章主要介紹了WebDriver中實現(xiàn)對特定的Web區(qū)域截圖方法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下

用過 WebDriver 的同學都知道,WebDriver 可以對瀏覽器中的頁面進行截圖。例如:

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

 

這樣產(chǎn)生的圖片是整個網(wǎng)頁。但有時候我們并不需要整個網(wǎng)頁,只需要某些特定的 WebElement,以避免一些干擾。

雖然 WebDriver 本身沒有提供這樣的 API,不過我們可以自己來,就是在全屏的截圖中再進行裁剪,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public BufferedImage createElementImage(WebElement webElement)
 throws IOException {
 // 獲得webElement的位置和大小。
 Point location = webElement.getLocation();
 Dimension size = webElement.getSize();
 // 創(chuàng)建全屏截圖。
 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。

這種方法可以很好的削減截圖的大小,也避免了一些不確定因素(比如日期時間等),是測試中保存截圖的很好的方式。

注:如果測試的網(wǎng)頁中含有 iframe,則需要使用更復雜的方式計算 WebElement 的位置,詳見:計算網(wǎng)頁中某個元素的位置。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: ova巨公主催眠1在线观看 | 国内精品伊人久久大香线焦 | 日韩毛片在线 | 国产成人综合一区人人 | 91在线 在线播放 | 午夜国产精品视频在线 | 亚洲国产在线播放 | 免费在线观看中文字幕 | 美女视频91| 亚洲第一综合网 | 我在厨房摸岳的乳HD在线观看 | 欧美亚洲一区二区三区在线 | 色菇凉天天综合网 | 国产美女亚洲精品久久久久久 | 天堂va亚洲va欧美va国产 | 亚洲精品久久久WWW游戏好玩 | 98国产视频 | 香蕉eeww99国产精选播放 | 亚洲国产精品无码中文字幕 | 国产大片视频免费观看 | 师尊被各种play打屁股 | 百合漫画咱啪全彩抚慰 | 亚洲国产午夜看片 | 我的男友是消防员在线观看 | 国产在线步兵一区二区三区 | 亚洲欧美久久久久久久久久爽网站 | xxoo好深好爽动态 | 女高h | 日韩精品视频免费 | 午夜A级理论片左线播放 | 99九九精品免费视频观看 | 女主被当众调教虐np | 亚洲女人国产香蕉久久精品 | heyzo在线观看| 精品午夜中文字幕熟女人妻在线 | 国产精品福利久久2020 | 日韩欧一级毛片在线播无遮挡 | 奇米影视久久777中文字幕 | 精品欧美一区二区精品久久 | 精品欧美男同同性videos | 免费看一级a一片毛片 |