当前位置: 首页 > news >正文

Selenium - java - 屏幕截图

文档地址

Selenium 浏览器自动化项目 | Selenium

安装

        <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.19.1</version></dependency>

使用

创建WebDriver实例

以chrome为例, 创建

ChromeOptions co = new ChromeOptions();
co.setCapability("webSocketUrl", true);  //BiDi功能需要添加这个配置
co.addArguments("--headless");           //无头浏览器
WebDriver driver = new ChromeDriver(chromeOptions);/*********************************************
*            操作                            *
**********************************************/driver.quit();

打开目标页面

driver.get("https://www.selenium.dev/selenium/web/web-form.html");

捕捉截图

首先要开启bidi功能

截图可以选择截取一个页面的图, 也可以选择某一元素进行截图

先看一个截取某一页面的代码例子:

// 首先创建一个BrowserContext对象BrowsingContext bc = new BrowsingContext(driver, driver.getWindowHandle());
String base64Str = bc.captureScreenshot();

截图返回的数据是一个图片的base64编码字符串

如果将截图文件保存到一个文件中, 可以参考如下代码

        byte[] decode = Base64.getDecoder().decode(base64Str);try(FileOutputStream fos = new FileOutputStream(new File("test.png"))){fos.write(decode);fos.close();} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}

这段代码会把截图文件保存为test.png文件中

如果想要截取某一个元素节点截图, 我们可以使用如下代码

WebElement element = driver.findElement(new By.ByClassName("py-2"));
String base64Str = bc.captureElementScreenshot(((RemoteWebElement)element).getId());

这样, 我们就可以把左侧表单元素截图保存下来

http://www.lryc.cn/news/338994.html

相关文章:

  • 【论文阅读——SplitFed: When Federated Learning Meets Split Learning】
  • Python使用方式介绍
  • 浅述python中NumPy包
  • jvm的面试回答
  • 打不动的蓝桥杯
  • 学习笔记——C语言基本概念文件——(13)
  • 【MySQL】事务篇
  • tsconfig.json文件常用配置
  • 【Linux】tcpdump P1 - 网络过滤选项
  • 网络篇04 | 应用层 mqtt(物联网)
  • Transformer模型-decoder解码器,target mask目标掩码的简明介绍
  • All in One:Prometheus 多实例数据统一管理最佳实践
  • mysql报错-mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止和数据恢复
  • Java开发从入门到精通(二十):Java的面向对象编程OOP:File文件操作的增删改查
  • 10.list的模拟实现(普通迭代器和const迭代器的类模板)
  • 【电控笔记5】电流环速度环三环参数整定
  • AI克隆语音(基于GPT-SoVITS)
  • 小蚕爬树问题
  • 科研学习|科研软件——如何使用SmartPLS软件进行结构方程建模
  • 实用工具系列-ADB使用方式
  • 计算机网络书籍--《网络是怎样连接的》阅读笔记
  • antd+vue——datepicker日期控件——禁用日期功能
  • 技术分享 | Appium 用例录制
  • [蓝桥杯 2018 省 A] 付账问题
  • 设计模式|装饰器模式(Decorator Pattern)
  • 发作性睡病有性别差异吗?
  • ppt从零基础到高手【办公】
  • 文件上传下载
  • C++11 新特性:新增算法
  • c/c++普通for循环学习