Jvppeteer 技术文档
Jvppeteer 是一个灵感源自 Puppeteer(Node.js 库)的Java库,它允许用户利用Java操控Chromium或Chrome浏览器,实现自动化任务如生成PDF、抓取SPA页面、UI测试等。本文档旨在提供全面的指导,帮助您快速理解和应用Jvppeteer。
安装指南
Maven 用户
在您的 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>io.github.fanyong920</groupId>
<artifactId>jvppeteer</artifactId>
<version>1.1.6</version>
</dependency>
Gradle 用户
确保您的项目包含 Maven Central 仓库,然后添加依赖:
dependencies {
implementation 'io.github.fanyong920:jvppeteer:1.1.6'
}
对于不使用依赖管理工具的情况,可以直接从 GitHub releases 下载最新版本的独立 JAR 包。
SLF4J 日志配置
Jvppeteer使用SLF4J进行日志记录,但不自带日志实现,因此需要您配置如Logback或Log4j的日志框架。
项目使用说明
启动浏览器
以非无头模式启动浏览器的示例代码:
ArrayList<String> argList = new ArrayList<>();
LaunchOptions options = new LaunchOptionsBuilder()
.withArgs(argList)
.withHeadless(false)
.withExecutablePath("自定义路径/C:/Program Files (x86)/Google/Chrome/Application/chrome.exe")
.build();
argList.add("--no-sandbox");
argList.add("--disable-setuid-sandbox");
Puppeteer.launch(options);
如果不指定withExecutablePath,则会尝试按其他逻辑查找或使用默认浏览器。
导航至页面
创建新页面并访问网址:
Browser browser = Puppeteer.launch();
Page page = browser.newPage();
page.goTo("https://www.taobao.com/about/");
browser.close();
生成页面PDF
确保在无头模式下操作:
Browser browser = Puppeteer.launch(new LaunchOptionsBuilder().withHeadless(true).build());
Page page = browser.newPage();
page.goTo("https://www.baidu.com");
PDFOptions options = new PDFOptions();
options.setPath("example.pdf");
page.pdf(options);
browser.close();
TRACING 性能分析
启动追踪,执行操作后停止并保存跟踪数据:
Page page = browser.newPage();
page.tracing().start("trace.json");
page.goTo("特定页面URL");
page.tracing().stop();
页面截图
Page page = browser.newPage();
page.goTo("目标网页地址");
ScreenshotOptions screenshotOptions = new ScreenshotOptions();
screenshotOptions.setPath("screenshot.png");
page.screenshot(screenshotOptions);
browser.close();
项目API使用文档
完整的API文档细节不在本文档内展开,建议参考Puppeteer中文文档以及Javadoc,因Jvppeteer尽量保持与Puppeteer相似的API接口,很多功能实现与之高度相似。
注意事项
- 对于Mac用户,在使用无特定路径启动Chrome时可能遇到问题,需手动指定路径。
- 解决早期版本中的Linux内存问题,请参考项目文档提供的解决方案。
- 配置SLF4J以获取详细的库操作日志。
通过以上指南,您应能够顺利地安装、配置并开始使用Jvppeteer进行Web自动化操作。更多高级用法和实例,请查阅项目中的样例代码和相关资源文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



