Class: Element

Inherits:
Object
  • Object
show all
Defined in:
lib/adb_driver/element.rb

Defined Under Namespace

Classes: Point, Size

Instance Method Summary collapse

Constructor Details

#initialize(xml_representation) ⇒ Element

Returns a new instance of Element.



5
6
7
# File 'lib/adb_driver/element.rb', line 5

def initialize(xml_representation)
  @xml_representation = xml_representation
end

Instance Method Details

#centerObject



54
55
56
# File 'lib/adb_driver/element.rb', line 54

def center
  Point.new(top_left.x + width / 2, top_left.y + height / 2)
end

#checked?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/adb_driver/element.rb', line 29

def checked?
  @xml_representation.attributes['checked'] == 'true'
end

#class_nameObject



62
63
64
# File 'lib/adb_driver/element.rb', line 62

def class_name
  @xml_representation.attributes['class']
end

#clickObject



9
10
11
# File 'lib/adb_driver/element.rb', line 9

def click
  `adb shell input tap #{center.x} #{center.y}`
end

#content_descObject



33
34
35
# File 'lib/adb_driver/element.rb', line 33

def content_desc
  @xml_representation.attributes['content-desc']
end

#heightObject



50
51
52
# File 'lib/adb_driver/element.rb', line 50

def height
  lower_right.y - top_left.y
end

#long_clickObject



13
14
15
# File 'lib/adb_driver/element.rb', line 13

def long_click
  `adb shell input swipe #{center.x} #{center.y} #{center.x} #{center.y} 800`
end

#lower_rightObject



42
43
44
# File 'lib/adb_driver/element.rb', line 42

def lower_right
  Point.new(coordinates[2], coordinates[3])
end

#send_keys(text) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/adb_driver/element.rb', line 17

def send_keys(text)
  click
  sleep 2
  text.scan(/.{1,10}/).each do |part|
    `adb shell "input text '#{part}'"`
  end
end

#sizeObject



58
59
60
# File 'lib/adb_driver/element.rb', line 58

def size
  Size.new(width, height)
end

#textObject



25
26
27
# File 'lib/adb_driver/element.rb', line 25

def text
  @xml_representation.attributes['text']
end

#top_leftObject Also known as: location



37
38
39
# File 'lib/adb_driver/element.rb', line 37

def top_left
  Point.new(coordinates[0], coordinates[1])
end

#widthObject



46
47
48
# File 'lib/adb_driver/element.rb', line 46

def width
  lower_right.x - top_left.x
end