如何为 ruby/Watir 和页面对象创建表集合

How do you create a collection of tables for ruby/Watir and Page Objects

我有一个包含一系列动态表的页面。
我希望能够遍历这些表,将它们转换为哈希(使用 .hashes 方法)并将它们与 .yml 文件中的数据进行比较。 但我似乎无法让集合正常工作。

这是一次尝试(使用虚拟页面):

class ViewOnlyPages
  include PageObject
  page_url("https://developers.google.com/chart/interactive/docs/examples")

  tables(:all_tables, :class =>'google-visualization-table-table')
  def verify_page_against(page_name, dataset)
  #load data from Yml

  #hash spin through all tables (for each table, read each record into hash?)
  self.all_tables.each do |table|
    puts table.hashes
    puts '---'
  end

end

tables 访问器方法类似于 elements 访问器方法。而不是创建一个all_tables方法,创建的方法实际上是all_tables_elements(注意“_elements”部分)。

换句话说,tables 的迭代应该是:

self.all_tables_elements.each do |table|
  puts table.hashes
  puts '---'
end

请注意,这实际上不会为示例页面创建任何输出。 table 的当前定义假定它们位于主页中。但是,在这种情况下,table 位于 iframe 中。您需要明确说明何时查看 iframe。要获得输出,table 应该在 in_iframe 块中定义:

in_iframe(:class => 'framebox') do |frame|
  tables(:all_tables, :class =>'google-visualization-table-table', :frame => frame)
end