如何使用 Selenium WebDriver 截取部分截图(帧)? [英] How to take partial screenshot (frame) with Selenium WebDriver?
本文介绍了如何使用 Selenium WebDriver 截取部分截图(帧)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用 WebDriver 在框架集中仅截取一帧(不是整个窗口)的屏幕截图?
Is it possible to take a screenshot with WebDriver of only one frame (not the complete window) within a frameset?
或者,是否可以为屏幕截图定义窗口坐标或随后裁剪图像?
Alternatively, is it possible to define coordinates of a window for the screenshot or crop the image afterwards?
推荐答案
这应该可行:
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.Point;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
public class Shooter{
private WebDriver driver;
public void shootWebElement(WebElement element) throws IOException {
File screen = ((TakesScreenshot) this.driver).getScreenshotAs(OutputType.FILE);
Point p = element.getLocation();
int width = element.getSize().getWidth();
int height = element.getSize().getHeight();
BufferedImage img = ImageIO.read(screen);
BufferedImage dest = img.getSubimage(p.getX(), p.getY(), width,
height);
ImageIO.write(dest, "png", screen);
File f = new File("S:\ome\where\over\the\rainbow");
FileUtils.copyFile(screen, f);
}
}
这篇关于如何使用 Selenium WebDriver 截取部分截图(帧)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文