通常情况下,像CentOS这样的Linux发行版默认是缺少中文字体的,所以在执行Selenium截图时,如果目标网页中有中文,则截图后中文将会显示为方块一样的乱码。 解决办法:手动安装中文字体即可。
以在CentOS 7中安装中文字体为例,操作步骤如下:
代码语言:javascript复制# 创建中文字体目录
mkdir -p /usr/share/fonts/chinese/
# 将字体文件拷贝到中文字体目录中
cp songti.ttf /usr/share/fonts/chinese/
cd /usr/share/fonts/chinese/
# 为刚加入的字体设置缓存使之有效
fc-cache -fv
# 查看系统中的字体
fc-list
安装好中文字体之后,再次执行Selenium截图时中文就不会显示为方块了。
上述宋体字体文件(songti.ttf,注意是ttf格式)可以从如下地址下载: http://www.foundertype.com/index.php/FontInfo/index/id/151 方正书宋字体,可以免费商业使用
特别说明: 字体是有版权限制的!为了避免不必要的商业纠纷,尽量使用经过授权或者能免费商用的字体文件。 关于字体的版权介绍,可以参考:字体版权科普篇,你对字体版权了解多少? 。
【参考】 https://cloud.tencent.com/developer/article/1662360 给Linux安装中文字体(解决Selenium截图出现乱码框)