2013-07-30 38 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的无头浏览器。