我使用PhantomJS通过Codeception运行一些自动化测试。当我生成屏幕截图时,页面显示但没有文字,例如下面的示例。
这是我用来安装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上看到我应该拥有的所有软件包。
答案 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。