在我开始重新发明轮子之前,是否有任何现有的宝石支持使用Capybara/Nokogiri的JavaScript风格DOM导航?我正在考虑将整个页面解析为对象的方法:
my_table = page.tables[0]
my_row = my_table.row[3]
my_cell = my_row.cell[2]
my_cell.text.should == "hello world"
(我正在寻找一个Ruby解决方案,而不是一些JavaScript的包装器)。
这对你有用吗?这是标准的Nokogiri
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"
你可以把Nokogiri猴痘准确地给你,但这对我来说并不好看。
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"
另一个糟糕的选择是slop decorator,在本页底部详细介绍。
另请参阅《Rails》指南中的"测试视图"。