专门访问一个值为 false 的 hash 元素
Accessing a hash element that has a value of false specificially
我有一个在 watir 自动化中使用的散列,它 return 是一个 true/false 值,基于 UI 中元素的存在。我可以 return 任何计算结果为 false 的东西,而不是 return 整个哈希吗?
elements = {
"Title" => @b.title == 'Details',
"Name" => @b.div(:class => 'rpt-name').present?,
"Address" => @b.div(:class => 'rpt-address').present?,
"Stats" => @b.div(:class => 'rpt-stats-container-top').present?,
"Employee Information" => @b.div(:class => 'rpt-stats-container').present?,
"Reports" => @b.div(:class => 'rpt-ribbon-container').present?
}
if elements.values.include? false
puts "ERROR: Page Validation Failed. #{elements.inspect}"
valid = false
else
valid = true
end
valid
您可以使用 select 和 return 所有为 false 的值
elements.select {|_key, value| !value }
您的代码如下:
elements = {
"Title" => @b.title == 'Details',
"Name" => @b.div(:class => 'rpt-name').present?,
"Address" => @b.div(:class => 'rpt-address').present?,
"Stats" => @b.div(:class => 'rpt-stats-container-top').present?,
"Employee Information" => @b.div(:class => 'rpt-stats-container').present?,
"Reports" => @b.div(:class => 'rpt-ribbon-container').present?
}.select { |_key, value| !value }
我有一个在 watir 自动化中使用的散列,它 return 是一个 true/false 值,基于 UI 中元素的存在。我可以 return 任何计算结果为 false 的东西,而不是 return 整个哈希吗?
elements = {
"Title" => @b.title == 'Details',
"Name" => @b.div(:class => 'rpt-name').present?,
"Address" => @b.div(:class => 'rpt-address').present?,
"Stats" => @b.div(:class => 'rpt-stats-container-top').present?,
"Employee Information" => @b.div(:class => 'rpt-stats-container').present?,
"Reports" => @b.div(:class => 'rpt-ribbon-container').present?
}
if elements.values.include? false
puts "ERROR: Page Validation Failed. #{elements.inspect}"
valid = false
else
valid = true
end
valid
您可以使用 select 和 return 所有为 false 的值
elements.select {|_key, value| !value }
您的代码如下:
elements = {
"Title" => @b.title == 'Details',
"Name" => @b.div(:class => 'rpt-name').present?,
"Address" => @b.div(:class => 'rpt-address').present?,
"Stats" => @b.div(:class => 'rpt-stats-container-top').present?,
"Employee Information" => @b.div(:class => 'rpt-stats-container').present?,
"Reports" => @b.div(:class => 'rpt-ribbon-container').present?
}.select { |_key, value| !value }