调用谷歌的无界浏览器,最起码得先装一个谷歌浏览器,然后进行下一步,
添加pom依赖,或者单独导入jar包也可以

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0-alpha-1</version></dependency>

selenium的版本选高一点,我用3.x的版本报错了。
或者直接用这个链接下载,版本自己选
http://selenium-release.storage.googleapis.com/index.html
然后下载谷歌浏览器的无界驱动
http://chromedriver.storage.googleapis.com/index.html
版本根据自己电脑上的谷歌浏览器匹配就好,有可能你装的64位的,但驱动只有32位的,这没关系,我自己是64位的浏览器,用32位的驱动照样可以
下来就是代码:

#生成的图片存储位置
img.path = E:\\js\\phantomjs-2.1.1-windows\\bin\\report\\img\\
#调用的Chrome浏览器驱动存放位置
chromedriver.path = E:\\js\\phantomjs-2.1.1-windows\\bin\\chromedriver.exe
#调用的Chrome浏览器安装位置
chrome.path = C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe

最好把这些地址都做成配置文件,我用的是springboot,就直接放在properties文件里了。

public void createChart(C3Info c3Entiy){String url = getUrl(c3Entiy);log.info("[准备发送远程请求:{}]",url);String imgSavePath1 = reportPath + c3Entiy.getPrePriId() + "_chart12.png";String imgSavePath2 = reportPath + c3Entiy.getPrePriId() + "_chart34.png";try{//设置驱动地址System.setProperty("webdriver.chrome.driver",driverPath);ChromeOptions options = new ChromeOptions();//设置谷歌浏览器exe文件所在地址options.setBinary(chromePath);//这里是要执行的命令,如需修改截图页面的尺寸,修改--window-size的参数即可"--window-size=1920,1200",options.addArguments("--headless","--window-size=1920,1200","--disable-gpu","--ignore-certificate-errors");WebDriver driver = new ChromeDriver(options);driver.manage().window().maximize();// 访问页面driver.get(url);// 页面等待渲染时长,单位默认是秒Wait<WebDriver> wait = new WebDriverWait(driver, 10);wait.until(new ExpectedCondition<WebElement>() {public WebElement apply(WebDriver web) {//若无需等待渲染,return true即可。 return web.findElement(By.id("chart12"));//chart12就是需要截图的div的id}});Thread.sleep(6000);         //等待页面完全加载WebElement element = driver.findElement(By.id("chart12"));File chart12File = element.getScreenshotAs(OutputType.FILE);FileUtils.copyFile(chart12File, new File(imgSavePath1));//可以多次截图,指向不同的div就可以element = driver.findElement(By.id("chart34"));File chart34File = element.getScreenshotAs(OutputType.FILE);FileUtils.copyFile(chart34File, new File(imgSavePath2));driver.quit();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}log.info("[生成的图片完成]");}

效果图:

自己原创,有不当之处,欢迎下方留言指正交流

java中调用谷歌的无界浏览器对页面元素进行截图相关推荐

  1. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  2. 如何在listary中调用谷歌翻译

    文章目录 如何在listary中调用谷歌翻译 1具体设置 2测试一下 3跳转到浏览器 如何在listary中调用谷歌翻译 listary是一个非常好用的电脑搜索软件,我们也可以用它来web定位搜索. ...

  3. JAVA中调用阿里云语音通知Api并接收消息回执

    JAVA中调用阿里云语音通知Api并接收消息回执 配置文件 需要的包 <dependency><groupId>com.aliyun</groupId><ar ...

  4. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  5. 在Java中调用Python

    写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...

  6. 如何在java中调用js方法

    [java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...

  7. java 中调用 Matlab 的函数

    一.matlab版本必须支持java 在command 模式下面运行deploytool,如果支持该命令即可使用 二.matlab中function的书写 %定义一个函数operation(a,b), ...

  8. java 调用 go_实践总结:在 Java 中调用 Go 代码

    在 Java 中调用 Go 的大致过程如下go --> cgo --> jna --> java 整个过程要解决的问题主要两个:数据类型在两种语言中如何转化 何时清理无用的数据 下面 ...

  9. java oracle sql 参数_oracle pl/sql之在java中调用带有输入输出参数的oracle存储过程...

    只需注意一点输出参数是用CallableStatement里面的registerOutParameter方法注册进去 存储过程: import java.sql.CallableStatement; ...

最新文章

  1. MySQL视图的创建、修改与删除
  2. git submodule 删除及更新URL
  3. 4线电子围栏安装示意图_电子围栏报警系统安装施工过程(图解)
  4. linux和Windows之间互传文件
  5. 蚂蚁金服上市诞生千个亿万富翁,财富自由,离你不远!
  6. AppStore下载Xcode的文件
  7. JAVAEE智慧树第二次作业
  8. PortableApps使用入门
  9. 不熟悉 excel,使用 python 将数据按要求转置
  10. [论文笔记] ASFD 阅读笔记
  11. 使用html 语言建立一个简单的网页,如何用记事本建立简单的网页(1).doc
  12. 最新码支付源码+完整版+免挂监听回调+微信、支付宝、qq监控APP打包教程
  13. mysql-mysql介绍
  14. asp.net的web的gridview使用技巧
  15. UNIAPP实战项目笔记43 购物车页面修改收货地址和修改默认地址
  16. JS打开模态窗口showModalDialog
  17. matlab用牛顿迭代法求解方程,牛顿迭代法求方程解 程序如下
  18. L3-031 千手观音 拓扑排序+哈希表
  19. TMS320F280049学习笔记3_CMPSS 比较器子模块
  20. 学习 canvas (四) 绘制动画

热门文章

  1. 单片机并行口开发——双数码管显示
  2. 谷歌浏览器 android 69,如何将谷歌浏览器69及以上版本切换回旧版UI界面
  3. 从懵逼到再入门——JavaEE完整体系架构
  4. 【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(下)——深度神经网络用于图像分类:应用
  5. RNC/SGSN/PDP/IUPS概念
  6. Linux下载蓝奏云文件,蓝奏云CMD控制台
  7. C# EXCEL 删除行
  8. 狄利克雷条件和帕塞瓦尔定理
  9. IT项目管理总结:第七章 项目成本管理
  10. 货郎问题(暴力求解)