java web截屏_java_WebDriver中实现对特定的Web区域截图方法,用过 WebDriver 的同学都知道,We - phpStudy...
WebDriver中實(shí)現(xiàn)對(duì)特定的Web區(qū)域截圖方法
用過 WebDriver 的同學(xué)都知道,WebDriver 可以對(duì)瀏覽器中的頁面進(jìn)行截圖。例如:
public byte[] takeScreenshot() throws IOException {
TakesScreenshot takesScreenshot = (TakesScreenshot) driver;
return takesScreenshot.getScreenshotAs(OutputType.BYTES);
}
這樣產(chǎn)生的圖片是整個(gè)網(wǎng)頁。但有時(shí)候我們并不需要整個(gè)網(wǎng)頁,只需要某些特定的 WebElement,以避免一些干擾。
雖然 WebDriver 本身沒有提供這樣的 API,不過我們可以自己來,就是在全屏的截圖中再進(jìn)行裁剪,如下:
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。
這種方法可以很好的削減截圖的大小,也避免了一些不確定因素(比如日期時(shí)間等),是測(cè)試中保存截圖的很好的方式。
注:如果測(cè)試的網(wǎng)頁中含有 iframe,則需要使用更復(fù)雜的方式計(jì)算 WebElement 的位置,詳見:計(jì)算網(wǎng)頁中某個(gè)元素的位置。相關(guān)閱讀:
Linux系統(tǒng)如何安裝及配置ClusterShell工具以便了解負(fù)載情況
Windows8系統(tǒng)無線網(wǎng)絡(luò)受限無線連接受限的解決方法
電腦中如何將耳機(jī)和揚(yáng)聲器設(shè)為獨(dú)立音源
WordPress導(dǎo)航菜單的滾動(dòng)和淡入淡出效果的實(shí)現(xiàn)要點(diǎn)
jquery插件Jplayer使用方法簡析
C#配置文件Section節(jié)點(diǎn)處理總結(jié)
如何實(shí)現(xiàn)chrome瀏覽器關(guān)閉頁面時(shí)彈出“確定要離開此面嗎?”
基于Android實(shí)現(xiàn)桌面懸浮清內(nèi)存app概述
Centos中安裝多個(gè)mysql數(shù)據(jù)的配置實(shí)例
創(chuàng)建自己的jquery表格插件
vbs打開ie兩種方法 在VBScript中啟動(dòng)IE瀏覽器的實(shí)現(xiàn)代碼
mac系統(tǒng)flash老是過期一個(gè)月更新好幾次該怎么辦?
解析SQLServer獲取Excel中所有Sheet的方法
ASP.NET筆記之 控件與母板的區(qū)別分析
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java web截屏_java_WebDriver中实现对特定的Web区域截图方法,用过 WebDriver 的同学都知道,We - phpStudy...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 左侧菜单隐藏_vue.js 左侧
- 下一篇: 原生js设置div隐藏或者显示_10种J