def gather_aspects(identifier, element, locator_args, qualifier_args)
      identifier.each_with_index do |hashes, index|
        next if hashes.nil? || hashes.is_a?(Proc)
        hashes.each do |k, v|
          methods = Watir.element_class_for(element).instance_methods
          if methods.include?(:"#{k}?") && !NATIVE_QUALIFIERS.include?(k)
            qualifier_args[k] = identifier[index][k]
          else
            locator_args[k] = v
          end
        end
      end
      [locator_args, qualifier_args]
    end
def gather_aspects(identifier, element, locator_args, qualifier_args)
      identifier.each_with_index do |hashes, index|
        next if hashes.nil? || hashes.is_a?(Proc)
        hashes.each do |k, v|
          methods = Watir.element_class_for(element).instance_methods
          if methods.include?(:"#{k}?") && !NATIVE_QUALIFIERS.include?(k)
            qualifier_args[k] = identifier[index][k]
          else
            locator_args[k] = v
          end
        end
      end
      [locator_args, qualifier_args]
    end
This method is used to separate the two aspects of an accessor --
 the locators and the qualifiers. Part of this process involves
 querying the Watir driver library to determine what qualifiers
 it handles natively. Consider the following:

    select_list :accounts, id: 'accounts', selected: 'Select Option'

 Given that, this method will return with the following:

    locator_args: {:id=>"accounts"}
    qualifier_args: {:selected=>"Select Option"}

 Consider this:

    p :login_form, id: 'open', index: 0, visible: true

 Given that, this method will return with the following:

    locator_args: {:id=>"open", :index=>0, :visible=>true}
    qualifier_args: {}

 Notice that the `visible` qualifier is part of the locator arguments
 as opposed to being a qualifier argument, like `selected` was in the
 previous example. This is because Watir 6.x handles the `visible`
 qualifier natively. "Handling natively" means that when a qualifier
 is part of the locator, Watir knows how to intrpret the qualifier
 as a condition on the element, not as a way to locate the element.