国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 15:09:22
字體:
供稿:網(wǎng)友

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

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


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

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

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,則需要使用更復(fù)雜的方式計算 WebElement 的位置,詳見:計算網(wǎng)頁中某個元素的位置。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万载县| 荣成市| 永新县| 寻乌县| 拉萨市| 巴东县| 宿松县| 灵石县| 上犹县| 固原市| 东莞市| 黑山县| 台东县| 谷城县| 读书| 莱州市| 隆子县| 鸡泽县| 上虞市| 潼南县| 长海县| 满洲里市| 白银市| 七台河市| 华容县| 资溪县| 德令哈市| 新竹市| 鄂托克前旗| 上杭县| 建德市| 青龙| 延寿县| 渝中区| 嵊州市| 广宗县| 平和县| 信宜市| 洪湖市| 梨树县| 陇川县|