如何为 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
我有一个包含一系列动态表的页面。
我希望能够遍历这些表,将它们转换为哈希(使用 .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