PhantomJS截图未显示文字

时间:2016-04-01 21:07:55

标签: phantomjs screenshot text-rendering

我使用PhantomJS通过Codeception运行一些自动化测试。当我生成屏幕截图时,页面显示但没有文字,例如下面的示例。

enter image description here

这是我用来安装phantomjs的脚本。我使用的是CentOS 7.1

echo "## Install phantomjs dependencies"
sudo yum install freetype-devel fontconfig-devel libicu-devel gcc glib libpng-devel bison sqlite-devel gperf flex libjpeg-devel  -y

echo "## Install phantomjs"
cd ~
PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
sudo mv $PHANTOM_JS.tar.bz2 /usr/local/share/
cd /usr/local/share/
sudo tar xvjf $PHANTOM_JS.tar.bz2
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/share/phantomjs
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin/phantomjs
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/bin/phantomjs
sudo rm -fr $PHANTOM_JS.tar.bz2
phantomjs -v

我最初的想法是我错过了一个字体库但是我可以在phantomjs site上看到我应该拥有的所有软件包。

2 个答案:

答案 0 :(得分:9)

所以看起来我的CentOS版本实际上没有安装任何字体。将以下行添加到我的PhantomJS安装脚本中,为系统添加了一些字体,屏幕截图按预期工作。

sudo yum install cabextract xorg-x11-font-utils -y
sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

答案 1 :(得分:0)

如果在安装字体后无法在屏幕截图中看到该文本,请确保使用正确的用户代理,告知您的计算机运行的操作系统是什么。 例如:

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36 

- 有了这个,我看不到文字了。

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36 

- 有了这个,我看到了文字。

我正在使用Linux CentOS。