2016-04-01 139 views
5

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

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阅读我应该有所有的包。

回答

8

所以看起来我的版本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 
0

如果你不能看到安装字体之后的截屏文本,确保你使用了正确的用户代理,告诉什么是你的机器上运行的操作系统。 E.g:

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。