Class: AdbDriver::Driver

Inherits:
Object
  • Object
show all
Includes:
Finder, Wait
Defined in:
lib/adb_driver/driver.rb

Constant Summary collapse

SCREENSHOT_TIMEOUT =
5

Constants included from Wait

Wait::Error

Constants included from Finder

Finder::FIND_ELEMENT_TIMEOUT, Finder::MIN_TIME_BETWEEN_FIND_ATTEMPTS, Finder::PAGE_SOURCE_TIMEOUT

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Wait

included, #wait

Methods included from Finder

#find_element, #find_elements, #find_elements_by_xpath, #page_source

Constructor Details

#initializeDriver

Returns a new instance of Driver.



12
13
14
15
16
# File 'lib/adb_driver/driver.rb', line 12

def initialize
  @logger = Logger.new('adb_driver.log')
  @logger.level = Logger::DEBUG
  @logger.info 'Initializing Adb driver'
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



10
11
12
# File 'lib/adb_driver/driver.rb', line 10

def logger
  @logger
end

Instance Method Details



28
29
30
# File 'lib/adb_driver/driver.rb', line 28

def navigate
  @navigation ||= Navigation.new
end

#quitObject



32
33
# File 'lib/adb_driver/driver.rb', line 32

def quit
end

#save_screenshot(filepath) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/adb_driver/driver.rb', line 18

def save_screenshot(filepath)
  if Adb.android_5_or_greater?
    wait(SCREENSHOT_TIMEOUT) { `adb exec-out screencap -p > #{filepath}` }
  else
    wait(SCREENSHOT_TIMEOUT) { `adb shell screencap -p /sdcard/screenshot.png; adb pull /sdcard/screenshot.png #{filepath}` }
  end
rescue Wait::Error => e
  raise e.class, 'Cannot take a screenshot'
end