这两个捕获屏幕代码有什么区别?

时间:2019-07-08 20:18:39

标签: java selenium

我有两个截屏代码,我想知道它们之间有什么区别?

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);  
FileUtils.copyFile(scrFile, new File("C:\\failure.png"));

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);  
**BufferedImage  fullImg = ImageIO.read(scrFile);**
FileUtils.copyFile(scrFile, new File("C:\\failure.png"));

所以带有**的行是不同的,但是她做什么?以及为什么在她之后我可以写:

Point point = element.getLocation();

int parkWidth = element.getSize().getWidth();
int parkHeight = element.getSize().getHeight();

BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), 
point.getY(),parkWidth, parkHeight);
ImageIO.write(eleScreenshot, "png", scrFile);

1 个答案:

答案 0 :(得分:1)

  

我有两个截屏代码,我想知道它们之间有什么区别?   所以带有**的行是不同的,但是她做什么?

区别在于,在第二个代码块中,您定义了一个新变量fullImg。但是,由于未使用它,所以这两个代码块是相同的(用于捕获屏幕截图)。

  

为什么在她之后我可以写:

这是因为您已定义变量fullImg,然后使用它:

BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),parkWidth, parkHeight);

在第一个代码块中,您没有fullImg,因此这会出错。