module WDA::Session

Public Instance Methods

healthcheck() click to toggle source

Healthcheck This api does also get back to homescreen

# File lib/wda_lib/session.rb, line 105
def healthcheck
  response = get(@base_url + '/wda/healthcheck')
  update_status(response)
end
launch_app(app_name_or_id) click to toggle source

Post desired_capabilities to wda server to create a session This is not realy needed since we can find and click app icon to start app @return [self]

# File lib/wda_lib/session.rb, line 61
def launch_app(app_name_or_id)
  fail 'Either app name or bundle id should be given for launch app' if app_name_or_id.nil?
  if app_name_or_id.include?('.')   # Given value is app's bundle id
    @bundle_id = app_name_or_id
    @session_id = nil      # Prepare to create new session
    @session_valid = false # Prepare to create new session
    #post(@base_url + '/session', { desiredCapabilities: { bundleId: app_name_or_id }})
    # Temporarily disabled
    capabilities
    @driver = Selenium::WebDriver::Driver.for(:remote, :url => @base_url,  :desired_capabilities => @caps[:desired_capabilities])
  else 
    app_name = app_name_or_id
    find_app(app_name).click
  end
  status
  self
end
open_url(url) click to toggle source

Post url to wda server to open a url in browser and create a session @return [self]

# File lib/wda_lib/session.rb, line 53
def open_url(url)
  post('/url', { url: url })
  status
end
quit(session_id = nil) click to toggle source

Exit current app by delete session with given session_id @param session_id [String] @return delete session response [Json]

# File lib/wda_lib/session.rb, line 92
def quit(session_id = nil)
  (session_id.nil?)? sessionId = @session_id : sessionId = session_id
  delete(@base_url + '/session/' + sessionId)
  status
end
restart(app_name_or_id = nil) click to toggle source

recreate a session @return [self]

# File lib/wda_lib/session.rb, line 81
def restart(app_name_or_id = nil)
  quit
  sleep 0.5
  status
  launch_app(app_name_or_id ||= @bundle_id )
  sleep 0.5
end
session() click to toggle source

Get current valid session @return [Session]

# File lib/wda_lib/session.rb, line 30
def session
  response = get(@url)
  if response['status'] != 0
    if response['status'] == 10
      response['value']
      restart_session
      response = get(@url)
    elsif response['status'] == 1 || response['status'] == 6
      @session_id = response['sessionId']
      @url = @base_url + "/session/#{@session_id}"
      response = get(@url)
    end
  else
    @session_id = response['sessionId']
    @caps[:desired_capabilities][:session_id] = @session_id
    @caps[:desired_capabilities][:session_valid] = true
    @url = @base_url + "/session/#{@session_id}"
  end
  response
end
status(status_timeout = 5) click to toggle source

Get current status @return [Obj]

# File lib/wda_lib/session.rb, line 10
def status(status_timeout = 5)
  @status = get(@base_url + '/status', status_timeout)
  @platform_name = @status['value']['os']['name']
  @platform_version = @status['value']['os']['version']
  update_status(@status)
end
update_status(status_response) click to toggle source

Update current running sessionId to @session_id @param status_response [object] : http GET session response body @return [object]

# File lib/wda_lib/session.rb, line 20
def update_status(status_response)
  @session_valid = true
  @session_id = status_response['sessionId']
  @url = @base_url + "/session/#{@session_id}"
  capabilities
  status_response
end
x() click to toggle source

Same as quit, but delete default @session_id

# File lib/wda_lib/session.rb, line 99
def x
  quit
end