//生成截图的方法
public class ElementPicture {
public static File captureElement(File screenshot, WebElement element){
try {
BufferedImage img = ImageIO.read(screenshot);
int width = element.getSize().getWidth();
int height = element.getSize().getHeight();
//获取指定元素的坐标
Point point = element.getLocation();
//从元素左上角坐标开始,按照元素的高宽对img进行裁剪为符合需要的图片
BufferedImage dest = img.getSubimage(point.getX(), point.getY(), width, height);
ImageIO.write(dest, "png", screenshot);
} catch (IOException e) {
e.printStackTrace();
}
return screenshot;
}
}
//调用demo
function demo(){
Thread.sleep(3000);
System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
webDriver.manage().deleteAllCookies();
// 与浏览器同步非常重要,必须等待浏览器加载完毕
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打开目标地址
webDriver.get("http://****");
WebElement img = webDriver.findElement(By.id("checkcodeImg"));
File ChromeFILE = ((ChromeDriver)webDriver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(AutoTest.captureElement(ChromeFILE,img),
new File("D:\\aaa\\code.jpg"));
} catch (Exception e) {
e.printStackTrace();
}
}
关于selenium+java,实现部分截图功能,-针对单个元素的截图
最新推荐文章于 2023-12-24 15:25:42 发布