2012-03-25 9 views
0

ホイールを再発明する前に、Capybara/Nokogiriを使ってJavaScriptスタイルのDOMナビゲーションをサポートする既存の宝石はありますか?DOMナビゲーションモデル? (Capybara/Nokogiri)

my_table = page.tables[0] 
my_row = my_table.row[3] 
my_cell = my_row.cell[2] 
my_cell.text.should == "hello world" 

(私はいくつかのJavaScriptのラッパーではなく、Rubyのソリューションを探しています):私はこれを許可するオブジェクトにページ全体を解析し、何かを考えています。

答えて

1

これはあなたのために働くでしょうか?それはあなたが正確にあなたにそれを与えるために鋸山をモンキーパッチができ、それはかなり私には見えない標準鋸山

my_table = page.css('table')[0] # or page.at_css('table') 
my_row = my_table.css('tr')[3] # or my_table.at_xpath('tr[position()=4]') 
my_cell = my_row.css('td,th')[2] 
my_cell.text.should == "hello world" 

です。

class Nokogiri::XML::Node 
    def tables 
    css('table') 
    end 

    def rows 
    css('tr') 
    end 

    def cells 
    css('th,td') 
    end 
end 

my_table = page.tables[0] 
my_row = my_table.rows[3] 
my_cell = my_row.cells[2] 
my_cell.text.should == "hello world" 

別の不正なオプションは、スロップデコレータ、詳細なat the bottom of this pageです。

また、レールのガイドでTesting Viewsをチェックしてください。

+0

はい、それは私が必要としているものを部分的に達成し、ビルドを考えている線に沿っています。オブジェクトベースのツリーだけで、特定の要素タイプに固有のメソッドを追加できます。 –