专门访问一个值为 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 }