java 使用 seleniumhq selenium Screenshot 实现调用浏览器驱动 截取图片 截取全图 截图 截屏
目录
效果
详细效果 图片太大上传不了
依赖
火狐驱动
示例代码
引入
类
运行main方法
具体执行任务方法
效果
详细效果 图片太大上传不了
依赖
<!--网页自动化测试 --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.9.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>
火狐驱动
稍后更新上去linux 和 win的都带上
https://download.csdn.net/download/weixin_42749765/12628882
示例代码
引入
import java.io.File;
import java.io.IOException;import org.openqa.selenium.Dimension;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.RemoteWebDriver;import com.google.common.io.Files;
类
/*** Screenshot 实现 浏览器截取页面转图片服务* * 可以实现截取全图能力 * * 20200716* * @author yushen **/
public class ScreenshotHtmlToImg {}
运行main方法
public static void main(String[] args) throws InterruptedException {long startMili = System.currentTimeMillis();// 开始时间System.out.println("stak execute ready time"+startMili);//网页地址String httpurl = "https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=8594240c35c5fbb1ee0ae2f1d7ef0c0f&upsid=8594240c35c5fbb1ee0ae2f1d7ef0c0f";
// String httpurl = "http://www.baidu.com" //文件存放地址String fileUrl = "d:/test/000000000000000000092screenfile.png";Boolean b = firefoxJT(httpurl,fileUrl);long endMili = System.currentTimeMillis(); // 结束时间System.out.println("stak execute "+b+" total time:" + (endMili - startMili) / 1000 + " s");}
具体执行任务方法
/*** Screenshot 调用 火狐浏览器 驱动,实现截取页面转图片* * @param httpUrl //网页地址* @param outputFileUrl //文件存放地址*/public static Boolean firefoxJT(String httpUrl, String outputFileUrl) {try {String projectPath = System.getProperty("user.dir");// System.out.println("projectPath==" + projectPath);// selenium3需要加载firefox的geckodriver.exeString path = projectPath + "/firefoxdriver/geckodriver-v0.26.0-win64/geckodriver.exe";// 设置firefox的系统属性System.setProperty("webdriver.gecko.driver", path);WebDriver driver = new FirefoxDriver();// driver.get("http://www.baidu.com");// Long is = (Long) ((FirefoxDriver) driver).executeScript("return window.document.body.scrollHeight;");
// System.out.println(is);driver.get(httpUrl);//获取页面内容 高度Long scrollHeight = (Long) ((FirefoxDriver) driver).executeScript("return window.document.body.scrollHeight;");
// System.out.println(is1);int scrollHeightInt = scrollHeight.intValue();System.out.println("页面高度:"+scrollHeightInt);// driver.manage().window().maximize();//// Dimension s = driver.manage().window().getSize();// System.out.println(s.getHeight()+"---"+s.getWidth());
// JavascriptExecutor j = (JavascriptExecutor) driver;
// j.executeScript("alert(window.scrollY)");
// Alert alert = driver.switchTo().alert();
//
// String text = alert.getText();
// System.out.println(text);
//
// JavascriptExecutor jse = (JavascriptExecutor)driver;
// String heightMax = (String) jse.executeScript("var heightmax ='12312312'; return heightmax;");
// System.out.println("浏览器高度:"+heightMax);
// String heightMax = (String) jse.executeScript("var heightmax = window.scrollY; return heightmax;");
// System.out.println("浏览器高度:"+heightMax);// Thread.sleep(5000);//TODO 之后研究下如何获取页面总高度 把下边 // 设置窗体大小宽高driver.manage().window().setSize(new Dimension(1366, scrollHeightInt+500));Thread.sleep(3000);// 等待三秒加载图片// 指定了OutputType.FILE做为参数传递给getScreenshotAs()方法,其含义是将截取的屏幕以文件形式返回。// driver需要强制转换为RemoteWebDriver对象,可以通过eclipse提示进行处理File scrFile = ((RemoteWebDriver) driver).getScreenshotAs(OutputType.FILE);try {// 利用FileUtils工具类的copy()方法保存getScreenshotAs()返回的文件对象。// 看到网上有使用File.copyFile()方法,我这里测试的结果需要使用copy()方法Files.copy(scrFile, new File(outputFileUrl));} catch (IOException e) {// 异常处理e.printStackTrace();System.out.println(e.toString());}driver.quit();return true;} catch (Exception e) {e.printStackTrace();System.out.println(e.toString());return false;}}
ok 持续更新
java 使用 seleniumhq selenium Screenshot 实现调用浏览器驱动 截取图片 截取全图 截图 截屏相关推荐
- python3+selenium调用浏览器驱动时报错的解决方法
如题,在python3环境中使用selenium,在调用浏览器驱动时,报错,报错信息如图 报错原因是因为chromeDriver驱动需要与相应的chrome浏览器版本号相对应. 解决方法:检查一下浏览 ...
- WEB自动化_窗口截图/截屏_get_screenshot_as_file()、screenshot()
1.截屏,截取整个页面 get_screenshot_as_file(img_path) 2.截屏,截取单个元素 screenshot(img_path) 3.案例 import time from ...
- java使用Chrome+Selenium+Screenshot 实现浏览器截长图
场景:需要长截图整个网站; 效果: 我进行了缩小和模糊处理,涉及到公司业务.模糊的可以看到是忽略了浏览器的头部,保留了完整的整个网页 解决思路: 模拟用户打开浏览器,然后截图,这边涉及到几个问题 浏览 ...
- selenium环境搭建,浏览器驱动安装
一安装Python: 1.下载Phtyon地址:https://www.python.org/getit/ 2.安装python会默认安装两个基础包setuptools,pip 也可以手动安装: ...
- selenium环境搭建,浏览器驱动下载教程,超详细!
web ui 自动化测试 web 指的是基于浏览器打开的网页 web ui 自动化测试就是通过代码来模拟人为(点击.输入.下拉选择等)操作浏览器,为了减轻工作量,提高测试效率而产生的 本周是基于sel ...
- java实现录屏_java录屏截屏: 用java代码实现的录屏和截图截屏,并在springboot上实现...
由于习惯了springboot 所以就写在springboot上了,并暴露了一个接口来触发录屏功能 核心代码在fxbase包下的VideoRecorder类中 但是代码写的有点乱,使用者可以不必过度关 ...
- c 后台代码调用ajax,.NET Selenium WebDriver操作调用浏览器后台执行Js(JavaScript)代码...
1.Selenium WebDriver安装引用 注意:要用使用的浏览器肯定要装,并且Selenium.Chrome.WebDriver版本要和浏览器版一致. 如果要操作其它浏览器,则安装对应其它浏览 ...
- 在selenium中使用tor浏览器驱动
使用Tor浏览器就不需要加代理了, from selenium import webdriver from selenium.webdriver.firefox.firefox_profile imp ...
- python对浏览器的常用操作_python+selenium(4)--浏览器操作的基本方法
关于自动化测试其实很多时候都是为了节省时间做一些大批量的复用性工作,在正式学习自动化脚本编写之前,这里引用陈建忠老师的博客内容,希望大家能了解一下关于什么是自动化的知识,在日后做自动化测试的过程中会根 ...
最新文章
- Android 系统Dimension和间距参数详解
- 帧同步和状态同步(二)案例分析
- 【华为云技术分享】MongoDB经典故障系列四:调整oplog大小,引起从库宕机怎么办?
- 一篇文章快速搞懂十大排序算法(C++实现源码)
- 深入理解java虚拟机读书笔记(三)
- 栈的应用 算术表达式转换为后缀表达式
- swat模型_文献分享——欧洲大陆尺度水质模型高分辨率大尺度SWAT模型率定及不确定性分析...
- Mybatis常用的OGNL表达式
- office2010安装提示需要MSXML版本6.10.1129.0
- 使用AudioRecord录制pcm格式音频
- 交换机,集线器,路由器这三者怎样区分,各自的作用是什么?
- 2018网易编程射击游戏
- Java中implement和extend
- 百万前端之js通过链接生成二维码可以保存下载复制
- 如何科学有效地根治肾虚——下篇(如何有效治疗肾虚?)
- HTTP代理中的api 代理的使用方法有什么?
- .Net框架中的CLR,CTS,ClS的解释
- 最懂选择的人用这4种策略避免纠结
- YOLOv5改进系列(1)——添加SE注意力机制
- 营销模式转型 推进ICT业务规模发展