def at! query, operations = [], &block
      result = @agent_page.at query
      result = operations.reduce(result) {|tmp, op| tmp.__send__ op } if result

      yield result if block_given?

      result
    end
def at! query, operations = [], &block
      result = @agent_page.at query
      result = operations.reduce(result) {|tmp, op| tmp.__send__ op } if result

      yield result if block_given?

      result
    end
at returns the first one only, but search returns all
 TODO merge with search!