日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java selenium 全屏截图和按元素截图介绍

發(fā)布時(shí)間:2024/3/24 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java selenium 全屏截图和按元素截图介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近開發(fā)自動(dòng)化測(cè)試工具,要寫圖片驗(yàn)證碼自動(dòng)識(shí)別,識(shí)別過程首先要先進(jìn)行圖片驗(yàn)證碼的截圖,于是網(wǎng)上找了一些截圖方法,但是我發(fā)現(xiàn),大多數(shù)的截圖方式都是先全屏截圖,然后按元素在頁面的位置和大小進(jìn)行裁剪,這種方式有個(gè)弊端:全屏圖片尺寸是按電腦屏幕分辨率來的,網(wǎng)頁尺寸是前端代碼設(shè)定的,這樣會(huì)導(dǎo)致裁剪的位置不是理想位置

所以總結(jié)了一下截圖方法:

方法一

全屏截圖,然后裁剪,這種方式圖片尺寸按電腦屏幕分辨率來的,與網(wǎng)頁實(shí)際尺寸有差異,裁剪后的效果不好:

//截全屏圖 File sourceFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);//保存圖片 try {FileUtils.copyFile(sourceFile, new File(sourceImg + "img.jpg")); } catch (IOException e) {e.printStackTrace(); } //裁剪圖片 BufferedImage img = null; try {img = ImageIO.read(new File(sourceImg + "img.jpg")); } catch (IOException e) {e.printStackTrace(); } int w = element.getSize().getWidth(); int h = element.getSize().getHeight(); Point point = element.getLocation(); //從元素左上角坐標(biāo)開始,按照元素的高寬對(duì)img進(jìn)行裁剪為符合需要的圖片 BufferedImage dest = img.getSubimage(point.getX(), point.getY(), w, h); try {ImageIO.write(dest,"jpg", new File(sourceImg+"result.jpg")); } catch (IOException e) {e.printStackTrace(); }

效果圖(請(qǐng)忽略去除干擾的效果):

方法二

按元素截圖:

//按元素截圖 File sourceFile = element.getScreenshotAs(OutputType.FILE); //保存圖片 try {FileUtils.copyFile(sourceFile, new File(sourceImg + "img.jpg")); } catch (IOException e) {e.printStackTrace(); }

效果圖:

總結(jié)

以上是生活随笔為你收集整理的Java selenium 全屏截图和按元素截图介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。