2013-02-13 56 views
7

當我使用capybara-webkit測試我的網站並截取屏幕截圖時,CSS中的@ font-face聲明被忽略。在Capybara-Webkit中顯示@ font-face字體

這是特別糟糕的,因爲我使用FontAwesome,所以在實際瀏覽器中顯示頁面的方式會有很大的不同。

如何重現:https://gist.github.com/anonymous/4948827

輸出:http://i.imgur.com/5lsrleY.jpg

有什麼辦法解決這一問題?

+0

問題的任何成功? – luckyjazzbo 2013-11-01 13:12:07

回答

1

根據qt的版本capybara-webkit的構建方式不同,webkit需要將非本地主機URL列入白名單。這包括對外部資產(如字體)的元引用。

爲了使全局這種情況發生,這增加在RSpec的配置塊spec_helper.rb:

config.before(:each) do 
    page.driver.allow_url("the-domain-name.com") 
end 

如果你有一個前:每個已,只是把它扔在那裏吧。 allow_url也接受一串字符串。

我已在您的要點中對此效果發表了評論。

+0

我認爲這個白名單已經有一段時間了,但qt吃了警告。然而,qt5顯示了它們,這是我如何偶然發現這個解決方案。 – IAmNaN 2015-02-13 22:41:32

1

一些研究表明,完全可以在Capybara-Webkit中呈現自定義字體,與PhantomJS相同。這PhantomJS Forum Post識別故障問題。快速總結:

  1. SVG字體效果最好。
  2. OTF字體往往不起作用。
  3. 它應該與Qt5一起修復,因此請檢查一下您所針對的Qt版本。