2015-10-07 31 views
1

我想實現以下目標:我想找到一個紅寶石寶石或函數給出一個鏈接(或更一般的網頁上的元素)頁面可以返回該鏈接的CSS路徑(或更通用的那個元素)。 這相當於Google Chrome中的「複製CSS路徑」,但在Ruby環境中。紅寶石寶石或片段找到完整的CSS路徑的錨標記

例如,如果你拿:www.google.com,會第一錨標記RoR的功能/寶石應該返回:#gbw > div > div > div.gb_Wd.gb_R.gb_be.gb_4d.gb_U > div:nth-child(1) > a

任何方式的回報率來實現這一目標?

回答

0

Nokogiri可以做到這一點。這是一個針對ruby的高級XML/HTML解析器。

您只需選擇一個節點,就像在Chromes開發人員工具中完成的那樣,並使用css_path()方法從中獲取css路徑。

html_doc = Nokogiri::HTML("<html><body><h1>Hello Stackoverflow</h1></body></html>") 
html_doc.xpath("//body").first.css_path 
+0

工作得非常好,唯一的小問題是,它返回由它在CSS路徑,而不是通過其ID或者這將是我的情況下,較好的一類名爲「第n-的型」號碼的元素。所以我得到的路徑是html> body> div:nth-​​of-type(1)> a,而不是html> body> div.someclass> a。我想我可以解決這個問題。感謝羅賓的領導! – Thrabbit

+0

我明白你的觀點。我認爲Nokogiri不能這樣做。 – Robin

+0

無論如何,這是99%。再次感謝! – Thrabbit