Class: AePageObjects::ElementProxy

Inherits:
Object
  • Object
show all
Includes:
PagePolling
Defined in:
lib/ae_page_objects/element_proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(element_class, *args) ⇒ ElementProxy

Returns a new instance of ElementProxy.



15
16
17
18
19
20
# File 'lib/ae_page_objects/element_proxy.rb', line 15

def initialize(element_class, *args)
  @element_class = element_class
  @args          = args

  @loaded_element = nil
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



120
121
122
123
124
125
126
# File 'lib/ae_page_objects/element_proxy.rb', line 120

def method_missing(name, *args, &block)
  if name == :class
    return @element_class
  end

  implicit_element.__send__(name, *args, &block)
end

Instance Method Details

#absent?Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
# File 'lib/ae_page_objects/element_proxy.rb', line 48

def absent?
  wait_until_absent
  true
rescue ElementNotAbsent
  false
end

#hidden?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
# File 'lib/ae_page_objects/element_proxy.rb', line 29

def hidden?
  wait_until_hidden
  true
rescue ElementNotHidden
  false
end

#is_a?(type) ⇒ Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/ae_page_objects/element_proxy.rb', line 112

def is_a?(type)
  type == @element_class || type == ElementProxy
end

#kind_of?(type) ⇒ Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/ae_page_objects/element_proxy.rb', line 116

def kind_of?(type)
  is_a?(type)
end

#not_present?Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/ae_page_objects/element_proxy.rb', line 55

def not_present?
  warn "[DEPRECATION WARNING]: AePageObjects::Element#not_present? is deprecated and will be removed in version 2.0.0. Use AePageObjects::Element#absent? instead."
  absent?
end

#not_visible?Boolean

Returns:

  • (Boolean)


36
37
38
39
# File 'lib/ae_page_objects/element_proxy.rb', line 36

def not_visible?
  warn "[DEPRECATION WARNING]: AePageObjects::Element#not_visible? is deprecated and will be removed in version 2.0.0. Use AePageObjects::Element#hidden? instead."
  hidden?
end

#presenceObject



60
61
62
63
64
# File 'lib/ae_page_objects/element_proxy.rb', line 60

def presence
  implicit_element
rescue LoadingElementFailed
  nil
end

#present?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
# File 'lib/ae_page_objects/element_proxy.rb', line 41

def present?
  wait_until_present
  true
rescue ElementNotPresent
  false
end

#respond_to?(*args) ⇒ Boolean

Returns:

  • (Boolean)


128
129
130
# File 'lib/ae_page_objects/element_proxy.rb', line 128

def respond_to?(*args)
  super || @element_class.allocate.respond_to?(*args)
end

#visible?Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
# File 'lib/ae_page_objects/element_proxy.rb', line 22

def visible?
  wait_until_visible
  true
rescue ElementNotVisible
  false
end

#wait_for_absence(timeout = nil) ⇒ Object



107
108
109
110
# File 'lib/ae_page_objects/element_proxy.rb', line 107

def wait_for_absence(timeout = nil)
  warn "[DEPRECATION WARNING]: AePageObjects::Element#wait_for_absence is deprecated and will be removed in version 2.0.0. Use AePageObjects::Element#wait_until_absent instead."
  wait_until_absent(timeout)
end

#wait_for_presence(timeout = nil) ⇒ Object



93
94
95
96
# File 'lib/ae_page_objects/element_proxy.rb', line 93

def wait_for_presence(timeout = nil)
  warn "[DEPRECATION WARNING]: AePageObjects::Element#wait_for_presence is deprecated and will be removed in version 2.0.0. Use AePageObjects::Element#wait_until_present instead."
  wait_until_present(timeout)
end

#wait_until_absent(timeout = nil) ⇒ Object



98
99
100
101
102
103
104
105
# File 'lib/ae_page_objects/element_proxy.rb', line 98

def wait_until_absent(timeout = nil)
  with_reloaded_element(timeout) do
    @loaded_element.nil?
  end

rescue AePageObjects::WaitTimeoutError
  raise ElementNotAbsent, "element_class: #{@element_class}, options: #{@options.inspect}"
end

#wait_until_hidden(timeout = nil) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/ae_page_objects/element_proxy.rb', line 75

def wait_until_hidden(timeout = nil)
  with_reloaded_element(timeout) do
    @loaded_element.nil? || !@loaded_element.visible?
  end

rescue AePageObjects::WaitTimeoutError
  raise ElementNotHidden, "element_class: #{@element_class}, options: #{@options.inspect}"
end

#wait_until_present(timeout = nil) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/ae_page_objects/element_proxy.rb', line 84

def wait_until_present(timeout = nil)
  with_reloaded_element(timeout) do
    !@loaded_element.nil?
  end

rescue AePageObjects::WaitTimeoutError
  raise ElementNotPresent, "element_class: #{@element_class}, options: #{@options.inspect}"
end

#wait_until_visible(timeout = nil) ⇒ Object



66
67
68
69
70
71
72
73
# File 'lib/ae_page_objects/element_proxy.rb', line 66

def wait_until_visible(timeout = nil)
  with_reloaded_element(timeout) do
    !@loaded_element.nil? && @loaded_element.visible?
  end

rescue AePageObjects::WaitTimeoutError
  raise ElementNotVisible, "element_class: #{@element_class}, options: #{@options.inspect}"
end