通常情况下,像CentOS这样的Linux发行版默认是缺少中文字体的,所以在执行Selenium截图时,如果目标网页中有中文,则截图后中文将会显示为方块一样的乱码。
解决办法:手动安装中文字体即可。
以在CentOS 7中安装中文字体为例,操作步骤如下:
# 创建中文字体目录 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截图出现乱码框)