程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> WebDriver中完成對特定的Web區域截圖辦法

WebDriver中完成對特定的Web區域截圖辦法

編輯:關於JAVA

WebDriver中完成對特定的Web區域截圖辦法。本站提示廣大學習愛好者:(WebDriver中完成對特定的Web區域截圖辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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 的地位,詳見:盤算網頁中某個元素的地位。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved