原理:浏览器截图
step1:了解ChromeDriver
step2:小时牛刀
tips:大于4.xx版本需要 jdk11
step3: 截图实现
java
// 初始化
driver = initializeChromeDriver();
// 加载HTML内容
loadHtmlContent(driver, htmlContent);
// 获取页面尺寸信息
PageDimensions dimensions = getPageDimensions(driver);
// 执行分页截图
BufferedImage fullImage = captureFullPageImage(driver, dimensions);
// 转换为字节数组
byte[] imageBytes = convertImageToBytes(fullImage);
// 创建截图结果对象
ScreenshotResult result = new ScreenshotResult(imageBytes, dimensions.width, dimensions.height, imageUrl);
遇到问题
1、版本问题
大于4版本需要使用jdk11,本地Chrome版本和selenium-java版本不对应问题
2、截图不完整,只有第一页内容或者有多页内容重叠问题
3、右侧有滚动条影响美观
step4: 部署
本地测试OK后到部署还有一小段路要走,这里以selenium-java 3.141.59为例
1 软件包准备
1、浏览器安装包 google-chrome-stable_current_x86_64_sf.rpm
2、chromedriver:chromedriver.zip
3、字体:fonts
如果不装字体浏览器中的中文无法显示
其他版本可以前往 chrome-for-testing 下载
2 涉及的命令
bash
mkdir /app/selenium
# 解压chromedriver
unzip -n /chromedriver-linux64.zip -d /app/selenium
chmod +x /app/selenium/chromedriver
#安装浏览器及依赖
yum install /app/selenium/vulkan-1.1.97.0-1.el7.x86_64.rpm /app/selenium/vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm -y
yum install /app/selenium/google-chrome-stable_current_x86_64_sf.rpm -y
# 解压字体文件
unzip -n /app/selenium/fonts.zip -d /usr/share/fonts/
# 中文字体是否成功安装
fc-list : family | grep -i "song\|hei\|yahei\|kai\|fang"
# 刷新字体
sudo fc-cache -fv
