Class: Pincers::Backend::Webdriver
- Inherits:
-
Base
- Object
- Base
- Pincers::Backend::Webdriver
show all
- Defined in:
- lib/pincers/backend/webdriver.rb
Instance Attribute Summary
Attributes inherited from Base
#document
Instance Method Summary
collapse
Methods inherited from Base
#clear_input, #switch_to_parent_frame
Constructor Details
#initialize(_driver) ⇒ Webdriver
Returns a new instance of Webdriver.
10
11
12
|
# File 'lib/pincers/backend/webdriver.rb', line 10
def initialize(_driver)
super _driver
end
|
Instance Method Details
#check_enabled(_elements) ⇒ Object
139
140
141
|
# File 'lib/pincers/backend/webdriver.rb', line 139
def check_enabled(_elements)
check_visible(_elements) and _elements.first.enabled?
end
|
#check_not_visible(_elements) ⇒ Object
143
144
145
|
# File 'lib/pincers/backend/webdriver.rb', line 143
def check_not_visible(_elements)
not _elements.any? { |e| e.displayed? }
end
|
#check_visible(_elements) ⇒ Object
135
136
137
|
# File 'lib/pincers/backend/webdriver.rb', line 135
def check_visible(_elements)
_elements.first.displayed?
end
|
#click_on_element(_element, _modifiers) ⇒ Object
94
95
96
97
98
99
100
101
|
# File 'lib/pincers/backend/webdriver.rb', line 94
def click_on_element(_element, _modifiers)
_element = ensure_ready_for_input _element
if _modifiers.length == 0
_element.click
else
click_with_modifiers(_element, _modifiers)
end
end
|
#close_document ⇒ Object
50
51
52
|
# File 'lib/pincers/backend/webdriver.rb', line 50
def close_document
driver.quit rescue nil
end
|
#document_root ⇒ Object
18
19
20
|
# File 'lib/pincers/backend/webdriver.rb', line 18
def document_root
[driver]
end
|
#document_title ⇒ Object
26
27
28
|
# File 'lib/pincers/backend/webdriver.rb', line 26
def document_title
driver.title
end
|
#document_url ⇒ Object
22
23
24
|
# File 'lib/pincers/backend/webdriver.rb', line 22
def document_url
driver.current_url
end
|
#double_click_on_element(_element) ⇒ Object
109
110
111
112
113
|
# File 'lib/pincers/backend/webdriver.rb', line 109
def double_click_on_element(_element)
assert_has_input_devices_for :double_click_on_element
_element = ensure_ready_for_input _element
actions.double_click(_element).perform
end
|
#drag_and_drop(_element, _on) ⇒ Object
121
122
123
124
125
|
# File 'lib/pincers/backend/webdriver.rb', line 121
def drag_and_drop(_element, _on)
assert_has_input_devices_for :drag_and_drop
_element = ensure_input_element _element
actions.drag_and_drop(_element, _on).perform
end
|
#element_is_actionable?(_element) ⇒ Boolean
82
83
84
85
86
|
# File 'lib/pincers/backend/webdriver.rb', line 82
def element_is_actionable?(_element)
_element.displayed?
end
|
77
78
79
80
|
# File 'lib/pincers/backend/webdriver.rb', line 77
def (_element, _name)
_element = ensure_element _element
_element[_name]
end
|
72
73
74
75
|
# File 'lib/pincers/backend/webdriver.rb', line 72
def (_element)
return driver.page_source if _element == driver
_element.attribute 'outerHTML'
end
|
62
63
64
65
|
# File 'lib/pincers/backend/webdriver.rb', line 62
def (_element)
_element = ensure_element _element
_element.tag_name
end
|
67
68
69
70
|
# File 'lib/pincers/backend/webdriver.rb', line 67
def (_element)
_element = ensure_element _element
_element.text
end
|
#fetch_cookies ⇒ Object
30
31
32
|
# File 'lib/pincers/backend/webdriver.rb', line 30
def fetch_cookies
driver.manage.all_cookies
end
|
#hover_over_element(_element) ⇒ Object
115
116
117
118
119
|
# File 'lib/pincers/backend/webdriver.rb', line 115
def hover_over_element(_element)
assert_has_input_devices_for :hover_over_element
_element = ensure_ready_for_input _element
actions.move_to(_element).perform
end
|
#javascript_enabled? ⇒ Boolean
14
15
16
|
# File 'lib/pincers/backend/webdriver.rb', line 14
def javascript_enabled?
true
end
|
#navigate_back(_steps) ⇒ Object
42
43
44
|
# File 'lib/pincers/backend/webdriver.rb', line 42
def navigate_back(_steps)
_steps.times { driver.navigate.back }
end
|
#navigate_forward(_steps) ⇒ Object
38
39
40
|
# File 'lib/pincers/backend/webdriver.rb', line 38
def navigate_forward(_steps)
_steps.times { driver.navigate.forward }
end
|
#navigate_to(_url) ⇒ Object
34
35
36
|
# File 'lib/pincers/backend/webdriver.rb', line 34
def navigate_to(_url)
driver.get _url
end
|
#refresh_document ⇒ Object
46
47
48
|
# File 'lib/pincers/backend/webdriver.rb', line 46
def refresh_document
driver.navigate.refresh
end
|
#right_click_on_element(_element) ⇒ Object
103
104
105
106
107
|
# File 'lib/pincers/backend/webdriver.rb', line 103
def right_click_on_element(_element)
assert_has_input_devices_for :right_click_on_element
_element = ensure_ready_for_input _element
actions.context_click(_element).perform
end
|
#search_by_css(_element, _selector, _limit) ⇒ Object
54
55
56
|
# File 'lib/pincers/backend/webdriver.rb', line 54
def search_by_css(_element, _selector, _limit)
search _element, { css: _selector }, _limit
end
|
#search_by_xpath(_element, _selector, _limit) ⇒ Object
58
59
60
|
# File 'lib/pincers/backend/webdriver.rb', line 58
def search_by_xpath(_element, _selector, _limit)
search _element, { xpath: _selector }, _limit
end
|
#set_element_text(_element, _value) ⇒ Object
88
89
90
91
92
|
# File 'lib/pincers/backend/webdriver.rb', line 88
def set_element_text(_element, _value)
_element = ensure_ready_for_input _element
_element.clear
_element.send_keys _value
end
|
#switch_to_frame(_element) ⇒ Object
127
128
129
|
# File 'lib/pincers/backend/webdriver.rb', line 127
def switch_to_frame(_element)
driver.switch_to.frame _element
end
|
#switch_to_top_frame ⇒ Object
131
132
133
|
# File 'lib/pincers/backend/webdriver.rb', line 131
def switch_to_top_frame
driver.switch_to.default_content
end
|