druid-ts 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog +10 -0
- data/druid.gemspec +2 -2
- data/features/html/multi_elements.html +135 -0
- data/features/multi_elements.feature +173 -0
- data/features/step_definations/multi_elements_steps.rb +296 -0
- data/features/support/env.rb +2 -0
- data/features/support/url_helper.rb +4 -0
- data/lib/druid/assist.rb +239 -198
- data/lib/druid/element_locators.rb +418 -25
- data/lib/druid/nested_elements.rb +96 -0
- data/lib/druid/page_factory.rb +87 -10
- data/lib/druid/version.rb +3 -0
- data/spec/druid/element_locators_spec.rb +147 -0
- data/spec/druid/page_factory_spec.rb +98 -0
- metadata +11 -8
data/features/support/env.rb
CHANGED
data/lib/druid/assist.rb
CHANGED
@@ -1,360 +1,401 @@
|
|
1
1
|
module Druid
|
2
2
|
module Assist
|
3
3
|
def click_link_for identifier
|
4
|
-
identifier
|
5
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}link(identifier).click"
|
6
|
-
switch_to_default_content(frame_identifiers)
|
4
|
+
process_call("link(identifier).click if identifier", Elements::Link, identifier)
|
7
5
|
end
|
8
6
|
|
9
7
|
def link_for identifier
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
find_element("link(identifier)", Elements::Link, identifier)
|
9
|
+
end
|
10
|
+
|
11
|
+
#
|
12
|
+
# retrieve all link elements
|
13
|
+
#
|
14
|
+
def links_for identifier
|
15
|
+
find_elements("links(identifier)", Elements::Link, identifier)
|
14
16
|
end
|
15
17
|
|
16
18
|
def text_field_for identifier
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
find_element("text_field(identifier)", Elements::TextField, identifier)
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
# retrieve an array of hidden field elements
|
24
|
+
#
|
25
|
+
def text_fields_for(identifier)
|
26
|
+
find_elements("text_fields(identifier)", Elements::TextField, identifier)
|
21
27
|
end
|
22
28
|
|
23
29
|
def text_field_value_for identifier
|
24
|
-
|
25
|
-
value = driver.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
26
|
-
switch_to_default_content(frame_identifiers)
|
27
|
-
value
|
30
|
+
process_call("text_field(identifier).value", Elements::TextField, identifier)
|
28
31
|
end
|
29
32
|
|
30
33
|
def text_field_value_set identifier, value
|
31
|
-
identifier,
|
32
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).set(value)"
|
33
|
-
switch_to_default_content(frame_identifiers)
|
34
|
+
process_call("text_field(identifier).set(value)", Elements::TextField, identifier, value)
|
34
35
|
end
|
35
36
|
|
36
37
|
def check_checkbox identifier
|
37
|
-
|
38
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set"
|
39
|
-
switch_to_default_content(frame_identifiers)
|
38
|
+
process_call("checkbox(identifier).set", Elements::CheckBox, identifier)
|
40
39
|
end
|
41
40
|
|
42
41
|
def uncheck_checkbox identifier
|
43
|
-
|
44
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).clear"
|
45
|
-
switch_to_default_content(frame_identifiers)
|
42
|
+
process_call("checkbox(identifier).clear", Elements::CheckBox, identifier)
|
46
43
|
end
|
47
44
|
|
48
45
|
def checkbox_checked? identifier
|
49
|
-
|
50
|
-
result = driver.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
51
|
-
switch_to_default_content(frame_identifiers)
|
52
|
-
result
|
46
|
+
process_call("checkbox(identifier).set?", Elements::CheckBox, identifier)
|
53
47
|
end
|
54
48
|
|
55
49
|
def checkbox_for identifier
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
50
|
+
find_element("checkbox(identifier)", Elements::CheckBox, identifier)
|
51
|
+
end
|
52
|
+
|
53
|
+
#
|
54
|
+
# retrieve an array of checkbox elements
|
55
|
+
|
56
|
+
def checkboxes_for identifier
|
57
|
+
find_elements("checkboxes(identifier)", Elements::CheckBox, identifier)
|
60
58
|
end
|
61
59
|
|
62
60
|
def select_list_value_set identifier, value
|
63
|
-
identifier,
|
64
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).select value"
|
65
|
-
switch_to_default_content(frame_identifiers)
|
61
|
+
process_call("select_list(identifier).select(value)", Elements::SelectList, identifier, value)
|
66
62
|
end
|
67
63
|
|
68
64
|
def select_list_value_for identifier
|
69
|
-
|
70
|
-
value = driver.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).value"
|
71
|
-
switch_to_default_content(frame_identifiers)
|
72
|
-
value
|
65
|
+
process_call("select_list(identifier).value", Elements::SelectList, identifier)
|
73
66
|
end
|
74
67
|
|
75
68
|
def select_list_for identifier
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
69
|
+
find_element("select_list(identifier)", Elements::SelectList, identifier)
|
70
|
+
end
|
71
|
+
|
72
|
+
#
|
73
|
+
# retrieve an array of select_list elements
|
74
|
+
#
|
75
|
+
def select_lists_for identifier
|
76
|
+
find_elements("select_lists(identifier)", Elements::SelectList, identifier)
|
80
77
|
end
|
81
78
|
|
82
79
|
def select_radio identifier
|
83
|
-
|
84
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set"
|
85
|
-
switch_to_default_content(frame_identifiers)
|
80
|
+
process_call("radio(identifier).set", Elements::RadioButton, identifier)
|
86
81
|
end
|
87
82
|
|
88
83
|
def clear_radio identifier
|
89
|
-
|
90
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).clear"
|
91
|
-
switch_to_default_content(frame_identifiers)
|
84
|
+
process_call("radio(identifier).clear", Elements::RadioButton, identifier)
|
92
85
|
end
|
93
86
|
|
94
87
|
def radio_selected? identifier
|
95
|
-
|
96
|
-
result = driver.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
97
|
-
switch_to_default_content(frame_identifiers)
|
98
|
-
result
|
88
|
+
process_call("radio(identifier).set?", Elements::RadioButton, identifier)
|
99
89
|
end
|
100
90
|
|
101
91
|
def radio_button_for identifier
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
92
|
+
find_element("radio(identifier)", Elements::RadioButton, identifier)
|
93
|
+
end
|
94
|
+
|
95
|
+
#
|
96
|
+
# retrieve an array of radio button elements
|
97
|
+
def radio_buttons_for identifier
|
98
|
+
find_elements("radios(identifier)", Elements::RadioButton, identifier)
|
106
99
|
end
|
107
100
|
|
108
101
|
def click_button_for identifier
|
109
|
-
|
110
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}button(identifier).click"
|
111
|
-
switch_to_default_content(frame_identifiers)
|
102
|
+
process_call("button(identifier).click", Elements::Button, identifier)
|
112
103
|
end
|
113
104
|
|
114
105
|
def button_for identifier
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
106
|
+
find_element("button(identifier)", Elements::Button, identifier)
|
107
|
+
end
|
108
|
+
|
109
|
+
#
|
110
|
+
# retrieve an array of button elements
|
111
|
+
#
|
112
|
+
def buttons_for(identifier)
|
113
|
+
find_elements("buttons(identifier)", Elements::Button, identifier)
|
119
114
|
end
|
120
115
|
|
121
116
|
def div_text_for identifier
|
122
|
-
|
123
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
124
|
-
switch_to_default_content(frame_identifiers)
|
125
|
-
text
|
117
|
+
process_call("div(identifier).text", Elements::Div, identifier, nil, 'div')
|
126
118
|
end
|
127
119
|
|
128
120
|
def div_for identifier
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
121
|
+
find_element("div(identifier)", Elements::Div, identifier, 'div')
|
122
|
+
end
|
123
|
+
|
124
|
+
#
|
125
|
+
# retrieve an array of div elements
|
126
|
+
#
|
127
|
+
def divs_for identifier
|
128
|
+
find_elements("divs(identifier)", Elements::Div, identifier, 'div')
|
133
129
|
end
|
134
130
|
|
135
131
|
def table_for identifier
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
132
|
+
find_element("table(identifier)", Elements::Table, identifier, 'table')
|
133
|
+
end
|
134
|
+
|
135
|
+
#
|
136
|
+
# retrieve an array of table elements
|
137
|
+
#
|
138
|
+
def tables_for identifier
|
139
|
+
find_elements("tables(identifier)", Elements::Table, identifier, 'table')
|
140
140
|
end
|
141
141
|
|
142
142
|
def cell_text_for identifier
|
143
|
-
|
144
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}td(identifier).text"
|
145
|
-
switch_to_default_content(frame_identifiers)
|
146
|
-
text
|
143
|
+
process_call("td(identifier).text", Elements::TableCell, identifier, nil, 'td')
|
147
144
|
end
|
148
145
|
|
149
146
|
def cell_for identifier
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
147
|
+
find_element("td(identifier)", Elements::TableCell, identifier, 'td')
|
148
|
+
end
|
149
|
+
|
150
|
+
#
|
151
|
+
# retrieve an array of cell elements
|
152
|
+
#
|
153
|
+
def cells_for identifier
|
154
|
+
find_elements("tds(identifier)", Elements::TableCell, identifier, 'td')
|
154
155
|
end
|
155
156
|
|
156
157
|
def span_text_for identifier
|
157
|
-
|
158
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
159
|
-
switch_to_default_content(frame_identifiers)
|
160
|
-
text
|
158
|
+
process_call("span(identifier).text", Elements::Span, identifier, nil, 'span')
|
161
159
|
end
|
162
160
|
|
163
161
|
def span_for identifier
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
162
|
+
find_element("span(identifier)", Elements::Span, identifier, 'span')
|
163
|
+
end
|
164
|
+
|
165
|
+
#
|
166
|
+
# retrieve an array of span elements
|
167
|
+
#
|
168
|
+
def spans_for identifier
|
169
|
+
find_elements("spans(identifier)", Elements::Span, identifier, 'span')
|
168
170
|
end
|
169
171
|
|
170
172
|
def image_for identifier
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
173
|
+
find_element("image(identifier)", Elements::Image, identifier)
|
174
|
+
end
|
175
|
+
|
176
|
+
#
|
177
|
+
# retrieve an array of image elements
|
178
|
+
#
|
179
|
+
def images_for identifier
|
180
|
+
find_elements("images(identifier)", Elements::Image, identifier)
|
175
181
|
end
|
176
182
|
|
177
183
|
def form_for identifier
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
184
|
+
find_element("form(identifier)", Elements::Form, identifier)
|
185
|
+
end
|
186
|
+
|
187
|
+
#
|
188
|
+
# retrieve an array of form elements
|
189
|
+
#
|
190
|
+
def forms_for identifier
|
191
|
+
find_elements("forms(identifier)", Elements::Form, identifier)
|
182
192
|
end
|
183
193
|
|
184
194
|
def hidden_field_value_for identifier
|
185
|
-
|
186
|
-
value = driver.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
187
|
-
switch_to_default_content(frame_identifiers)
|
188
|
-
value
|
195
|
+
process_call("hidden(identifier).value", Elements::HiddenField, identifier)
|
189
196
|
end
|
190
197
|
|
191
198
|
def hidden_field_for identifier
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
199
|
+
find_element("hidden(identifier)", Elements::HiddenField, identifier)
|
200
|
+
end
|
201
|
+
|
202
|
+
#
|
203
|
+
# retrieve an array of hidden_field elements
|
204
|
+
#
|
205
|
+
def hidden_fields_for identifier
|
206
|
+
find_elements("hiddens(identifier)", Elements::HiddenField, identifier)
|
196
207
|
end
|
197
208
|
|
198
209
|
def list_item_text_for identifier
|
199
|
-
|
200
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
201
|
-
switch_to_default_content(frame_identifiers)
|
202
|
-
text
|
210
|
+
process_call("li(identifier).text", Elements::ListItem, identifier, nil, 'li')
|
203
211
|
end
|
204
212
|
|
205
213
|
def list_item_for identifier
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
214
|
+
find_element("li(identifier)", Elements::ListItem, identifier, 'li')
|
215
|
+
end
|
216
|
+
|
217
|
+
#
|
218
|
+
# retrieve an array of list_item elements
|
219
|
+
#
|
220
|
+
def list_items_for identifier
|
221
|
+
find_elements("lis(identifier)", Elements::ListItem, identifier, 'li')
|
210
222
|
end
|
211
223
|
|
212
224
|
def ordered_list_for identifier
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
225
|
+
find_element("ol(identifier)", Elements::OrderedList, identifier, 'ol')
|
226
|
+
end
|
227
|
+
|
228
|
+
#
|
229
|
+
# retrieve an array of ordered_list elements
|
230
|
+
#
|
231
|
+
def ordered_lists_for identifier
|
232
|
+
find_elements("ols(identifier)", Elements::OrderedList, identifier, 'ol')
|
217
233
|
end
|
218
234
|
|
219
235
|
def text_area_value_set identifier, value
|
220
|
-
identifier,
|
221
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).send_keys value"
|
222
|
-
switch_to_default_content(frame_identifiers)
|
236
|
+
process_call("textarea(identifier).send_keys(value)", Elements::TextArea, identifier, value)
|
223
237
|
end
|
224
238
|
|
225
239
|
def text_area_value_for identifier
|
226
|
-
|
227
|
-
value = driver.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
228
|
-
switch_to_default_content(frame_identifiers)
|
229
|
-
value
|
240
|
+
process_call("textarea(identifier).value", Elements::TextArea, identifier)
|
230
241
|
end
|
231
242
|
|
232
243
|
def text_area_for identifier
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
244
|
+
find_element("textarea(identifier)", Elements::TextArea, identifier)
|
245
|
+
end
|
246
|
+
#
|
247
|
+
# retrieve an array of textarea elements
|
248
|
+
def text_areas_for identifier
|
249
|
+
find_elements("textareas(identifier)", Elements::TextArea, identifier)
|
237
250
|
end
|
238
251
|
|
239
252
|
def unordered_list_for identifier
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
253
|
+
find_element("ul(identifier)", Elements::UnOrderedList, identifier, 'ul')
|
254
|
+
end
|
255
|
+
|
256
|
+
#
|
257
|
+
# retrieve an array of unordered_lists elements
|
258
|
+
#
|
259
|
+
def unordered_lists_for identifier
|
260
|
+
find_elements("uls(identifier)", Elements::UnOrderedList, identifier, 'ul')
|
244
261
|
end
|
245
262
|
|
246
263
|
def h1_text_for identifier
|
247
|
-
|
248
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier).text"
|
249
|
-
switch_to_default_content(frame_identifiers)
|
250
|
-
text
|
264
|
+
process_call("h1(identifier).text", Elements::Heading, identifier, nil, 'h1')
|
251
265
|
end
|
252
266
|
|
253
267
|
def h1_for identifier
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
268
|
+
find_element("h1(identifier)", Elements::Heading, identifier, 'h1')
|
269
|
+
end
|
270
|
+
|
271
|
+
#
|
272
|
+
# retrieve an array of h1 elements
|
273
|
+
#
|
274
|
+
def h1s_for identifier
|
275
|
+
find_elements("h1s(identifier)", Elements::Heading, identifier, 'h1')
|
258
276
|
end
|
259
277
|
|
260
278
|
def h2_text_for identifier
|
261
|
-
|
262
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier).text"
|
263
|
-
switch_to_default_content(frame_identifiers)
|
264
|
-
text
|
279
|
+
process_call("h2(identifier).text", Elements::Heading, identifier, nil, 'h2')
|
265
280
|
end
|
266
281
|
|
267
282
|
def h2_for identifier
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
283
|
+
find_element("h2(identifier)", Elements::Heading, identifier, 'h2')
|
284
|
+
end
|
285
|
+
|
286
|
+
#
|
287
|
+
# retrieve an array of h2 elements
|
288
|
+
#
|
289
|
+
def h2s_for identifier
|
290
|
+
find_elements("h2s(identifier)", Elements::Heading, identifier, 'h2')
|
272
291
|
end
|
273
292
|
|
274
293
|
def h3_text_for identifier
|
275
|
-
|
276
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier).text"
|
277
|
-
switch_to_default_content(frame_identifiers)
|
278
|
-
text
|
294
|
+
process_call("h3(identifier).text", Elements::Heading, identifier, nil, 'h3')
|
279
295
|
end
|
280
296
|
|
281
297
|
def h3_for identifier
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
298
|
+
find_element("h3(identifier)", Elements::Heading, identifier, 'h3')
|
299
|
+
end
|
300
|
+
|
301
|
+
#
|
302
|
+
# retrieve an array of h3 elements
|
303
|
+
#
|
304
|
+
def h3s_for identifier
|
305
|
+
find_elements("h3s(identifier)", Elements::Heading, identifier, 'h3')
|
286
306
|
end
|
287
307
|
|
288
308
|
def h4_text_for identifier
|
289
|
-
|
290
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier).text"
|
291
|
-
switch_to_default_content(frame_identifiers)
|
292
|
-
text
|
309
|
+
process_call("h4(identifier).text", Elements::Heading, identifier, nil, 'h4')
|
293
310
|
end
|
294
311
|
|
295
312
|
def h4_for identifier
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
313
|
+
find_element("h4(identifier)", Elements::Heading, identifier, 'h4')
|
314
|
+
end
|
315
|
+
|
316
|
+
#
|
317
|
+
# retrieve an array of h4 elements
|
318
|
+
#
|
319
|
+
def h4s_for identifier
|
320
|
+
find_elements("h4s(identifier)", Elements::Heading, identifier, 'h4')
|
300
321
|
end
|
301
322
|
|
302
323
|
def h5_text_for identifier
|
303
|
-
|
304
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier).text"
|
305
|
-
switch_to_default_content(frame_identifiers)
|
306
|
-
text
|
324
|
+
process_call("h5(identifier).text", Elements::Heading, identifier, nil, 'h5')
|
307
325
|
end
|
308
326
|
|
309
327
|
def h5_for identifier
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
328
|
+
find_element("h5(identifier)", Elements::Heading, identifier, 'h5')
|
329
|
+
end
|
330
|
+
|
331
|
+
#
|
332
|
+
# retrieve an array of h5 elements
|
333
|
+
#
|
334
|
+
def h5s_for identifier
|
335
|
+
find_elements("h5s(identifier)", Elements::Heading, identifier, 'h5')
|
314
336
|
end
|
315
337
|
|
316
338
|
def h6_text_for identifier
|
317
|
-
|
318
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier).text"
|
319
|
-
switch_to_default_content(frame_identifiers)
|
320
|
-
text
|
339
|
+
process_call("h6(identifier).text", Elements::Heading, identifier, nil, 'h6')
|
321
340
|
end
|
322
341
|
|
323
342
|
def h6_for identifier
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
343
|
+
find_element("h6(identifier)", Elements::Heading, identifier, 'h6')
|
344
|
+
end
|
345
|
+
|
346
|
+
#
|
347
|
+
# retrieve an array of h6 elements
|
348
|
+
#
|
349
|
+
def h6s_for identifier
|
350
|
+
find_elements("h6s(identifier)", Elements::Heading, identifier, 'h6')
|
328
351
|
end
|
329
352
|
|
330
353
|
def paragraph_text_for identifier
|
331
|
-
|
332
|
-
text = driver.instance_eval "#{nested_frames(frame_identifiers)}p(identifier).text"
|
333
|
-
switch_to_default_content(frame_identifiers)
|
334
|
-
text
|
354
|
+
process_call("p(identifier).text", Elements::Paragraph, identifier, nil, 'p')
|
335
355
|
end
|
336
356
|
|
337
357
|
def paragraph_for identifier
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
358
|
+
find_element("p(identifier)", Elements::Paragraph, identifier, 'p')
|
359
|
+
end
|
360
|
+
|
361
|
+
#
|
362
|
+
# retrieve an array of paragraph Elements
|
363
|
+
#
|
364
|
+
def paragraphs_for identifier
|
365
|
+
find_elements("ps(identifier)", Elements::Paragraph, identifier, 'p')
|
342
366
|
end
|
343
367
|
|
344
368
|
def file_field_value_set identifier, value
|
345
|
-
identifier,
|
346
|
-
driver.instance_eval "#{nested_frames(frame_identifiers)}file_field(identifier).set(value)"
|
347
|
-
switch_to_default_content(frame_identifiers)
|
369
|
+
process_call("file_field(identifier).set(value)", Elements::FileField, identifier, value)
|
348
370
|
end
|
349
371
|
|
350
372
|
def file_field_for identifier
|
351
|
-
|
352
|
-
element = driver.instance_eval "#{nested_frames(frame_identifiers)}file_field(identifier)"
|
353
|
-
switch_to_default_content(frame_identifiers)
|
354
|
-
Elements::FileField.new element
|
373
|
+
find_element("file_field(identifier)", Elements::FileField, identifier)
|
355
374
|
end
|
375
|
+
|
356
376
|
private
|
357
377
|
|
378
|
+
def find_elements(the_call, type, identifier, tag_name=nil)
|
379
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
380
|
+
elements = driver.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
381
|
+
switch_to_default_content(frame_identifiers)
|
382
|
+
elements.map { |element| type.new(element) }
|
383
|
+
end
|
384
|
+
|
385
|
+
def find_element(the_call, type, identifier, tag_name=nil)
|
386
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
387
|
+
element = driver.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
388
|
+
switch_to_default_content(frame_identifiers)
|
389
|
+
type.new(element)
|
390
|
+
end
|
391
|
+
|
392
|
+
def process_call(the_call, type, identifier, value=nil, tag_name=nil)
|
393
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
394
|
+
value = driver.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
395
|
+
switch_to_default_content(frame_identifiers)
|
396
|
+
value
|
397
|
+
end
|
398
|
+
|
358
399
|
def add_tagname_if_needed identifier, tag
|
359
400
|
return identifier if identifier.length < 2 and not identifier[:name]
|
360
401
|
identifier[:tag_name] = tag if identifier[:name]
|