2013-07-30 72 views
0

我用Rails 3湊一個網站,做像這樣的查詢:獲取計算的字體大小在Rails的

agent = Mechanize.new 
doc = agent.get(url) 

然後我做

doc.search("//div") 

它返回一個頁面上所有div的列表。我想選擇具有最大字體大小的div。是否有使用Mechanize,Nokogiri或其他Rails gem來查找div的計算字體大小,並從那裏選擇字體最大的那個?

感謝

回答

1

你不能用機械化或引入nokogiri做到這一點,因爲他們根本看靜態的HTML。然而,字體大小通常不再定義在HTML中;它通常在CSS中定義或使用JavaScript以編程方式添加。

唯一的解決辦法是能夠執行JavaScript並使用JavaScript的getComputedStyle方法,該方法可以獲取已應用於元素的字體大小(通過CSS或JS)。所以你需要一種將JS注入頁面並獲得結果的方法。這可能使用watir-webdriver,因爲Selenium有鉤子來做到這一點。查看this page的最後一個關於如何注入JS並將結果返回給Selenium調用者的說明。另一個選項是PhantomJS,它是一個帶有JS API的無頭瀏覽器。