def long_press(query, duration: nil, at: nil)
      Query.ensure_valid_query(query)

      options = {
          at: at || {x: 50, y: 50},
          duration: duration || 1.0
      }

      Calabash::Internal.with_current_target {|target| target.long_press(Query.new(query), options)}
    end
def long_press(query, duration: nil, at: nil)
      Query.ensure_valid_query(query)

      options = {
          at: at || {x: 50, y: 50},
          duration: duration || 1.0
      }

      Calabash::Internal.with_current_target {|target| target.long_press(Query.new(query), options)}
    end
Performs a **long_press** on the first view that matches `query`.

 On iOS this is often referred to as _touch-and-hold_.  On Android this
 is known variously as _press_, _long-push_, _press-and-hold_, or _hold_.

 @see #tap

 @param [String] query A query describing the view to tap.
 @param [Number] duration (default: 1.0) The amount of time in seconds to
  press.  On iOS, the duration must be between 0.5 and 60.
 @param [Hash] at (default: `{x: 50, y: 50}`) The point at which the
   gesture originates from.  It is a percentage-based translation using
   top-left `{x: 0, y: 0}` as the reference point.
 @raise [ViewNotFoundError] If the `query` returns no results.
 @raise [ArgumentError] If `query` is invalid.