当我使用 capybara-webkit 测试我的网站并截屏时,CSS 中的 @font-face 声明被忽略。
这尤其糟糕,因为我使用的是 FontAwesome,因此页面在真实浏览器中的显示方式会有很大差异。
如何重现:https ://gist.github.com/anonymous/4948827
输出:http: //i.imgur.com/5lsrleY.jpg
有没有什么办法解决这一问题?
当我使用 capybara-webkit 测试我的网站并截屏时,CSS 中的 @font-face 声明被忽略。
这尤其糟糕,因为我使用的是 FontAwesome,因此页面在真实浏览器中的显示方式会有很大差异。
如何重现:https ://gist.github.com/anonymous/4948827
输出:http: //i.imgur.com/5lsrleY.jpg
有没有什么办法解决这一问题?
一些研究表明,完全可以在 Capybara-Webkit 中呈现自定义字体,与使用 PhantomJS 相同。这个PhantomJS 论坛帖子确定了问题。快速总结:
根据构建的版本qt
,capybara-webkit
webkit 需要将非 localhost url 列入白名单。这包括对外部资产(如字体)的元引用。
要在全局范围内实现这一点,请将其添加到 rspec 配置块中的 spec_helper.rb 中:
config.before(:each) do
page.driver.allow_url("the-domain-name.com")
end
如果你已经有一个 before :each ,只需把它扔在那里。allow_url
也接受一个字符串数组。
为此,我在您的要点中发表了评论。