page_object_wrapper 1.4.9 → 1.5.0
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.
- data/lib/page_object_wrapper.rb +37 -5
- data/lib/page_object_wrapper/PageObject.rb +51 -65
- data/lib/version.rb +1 -1
- data/spec/currents_spec.rb +42 -0
- data/spec/feed_xxx_spec.rb +3 -3
- data/spec/open_page_spec.rb +2 -2
- data/spec/select_from_xxx_spec.rb +2 -2
- metadata +14 -12
data/lib/page_object_wrapper.rb
CHANGED
@@ -6,18 +6,21 @@ require pwd + 'page_object_wrapper/PageObject'
|
|
6
6
|
module PageObjectWrapper
|
7
7
|
@@domain = nil
|
8
8
|
@@browser = nil
|
9
|
-
@@
|
9
|
+
@@current_page = nil
|
10
|
+
@@current_action_result = nil
|
11
|
+
@@current_table_row = nil
|
12
|
+
@@current_table_cell = nil
|
10
13
|
|
11
14
|
def self.domain=val
|
12
15
|
@@domain=val
|
13
16
|
end
|
14
17
|
|
15
18
|
def self.use_browser b
|
16
|
-
|
19
|
+
@@browser = b
|
17
20
|
end
|
18
21
|
|
19
22
|
def self.browser
|
20
|
-
|
23
|
+
@@browser
|
21
24
|
end
|
22
25
|
|
23
26
|
def self.define_page(label, &block)
|
@@ -28,11 +31,40 @@ module PageObjectWrapper
|
|
28
31
|
end
|
29
32
|
|
30
33
|
def self.current_page
|
31
|
-
|
34
|
+
@@current_page
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.current_page= page_object
|
38
|
+
@@current_page = page_object
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.current_action_result= res
|
42
|
+
@@current_action_result = res
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.current_action_result
|
46
|
+
@@current_action_result
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.current_table_row= res
|
50
|
+
@@current_table_row = res
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.current_table_row
|
54
|
+
@@current_table_row
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.current_table_cell= res
|
58
|
+
@@current_table_cell = res
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.current_table_cell
|
62
|
+
@@current_table_cell
|
32
63
|
end
|
33
64
|
|
34
65
|
def self.current_page? label
|
35
|
-
PageObject.
|
66
|
+
PageObject.map_current_page label
|
67
|
+
true
|
36
68
|
end
|
37
69
|
|
38
70
|
def self.load(path_to_pages='.')
|
@@ -15,9 +15,7 @@ require pwd + '/known_elements'
|
|
15
15
|
module PageObjectWrapper
|
16
16
|
class PageObject < DslElementWithLocator
|
17
17
|
attr_reader :esets, :elements, :actions, :aliases, :validators, :tables, :paginations, :uniq_element_type, :uniq_element_hash
|
18
|
-
@@browser = nil
|
19
18
|
@@pages = []
|
20
|
-
@@current_page = nil
|
21
19
|
|
22
20
|
REQUIRED_ELEMENT_WAIT_PERIOD = 10
|
23
21
|
FEED_ALL = Regexp.new(/^feed_all$/)
|
@@ -61,58 +59,58 @@ module PageObjectWrapper
|
|
61
59
|
when has_eset?(method_name)
|
62
60
|
# page_object.some_elements_set
|
63
61
|
eset = eset_for(method_name)
|
64
|
-
PageObject.return_array_of_watir_elements(eset)
|
62
|
+
PageObjectWrapper.current_action_result = PageObject.return_array_of_watir_elements(eset)
|
65
63
|
when has_element?(method_name)
|
66
64
|
# page_object.some_element
|
67
65
|
element = element_for(method_name)
|
68
|
-
PageObject.return_watir_element element
|
66
|
+
PageObjectWrapper.current_action_result = PageObject.return_watir_element element
|
69
67
|
when FEED_ALL.match(method_name)
|
70
68
|
# page_object.feed_all(:fresh_food)
|
71
|
-
feed_elements(@elements, *args)
|
69
|
+
PageObjectWrapper.current_action_result = feed_elements(@elements, *args)
|
72
70
|
when (FEED.match(method_name) and has_eset?($1))
|
73
71
|
# page_object.feed_some_elements_set(:fresh_food)
|
74
72
|
eset = eset_for($1)
|
75
|
-
feed_elements(eset.elements, *args)
|
73
|
+
PageObjectWrapper.current_action_result = feed_elements(eset.elements, *args)
|
76
74
|
when (FEED.match(method_name) and has_element?($1))
|
77
75
|
# page_object.feed_some_element(:fresh_food)
|
78
76
|
e = element_for($1)
|
79
77
|
if [true, false].include? args[0] or args[0].is_a? String
|
80
|
-
feed_field(e, args[0])
|
78
|
+
PageObjectWrapper.current_action_result = feed_field(e, args[0])
|
81
79
|
else
|
82
|
-
feed_elements([e], *args)
|
80
|
+
PageObjectWrapper.current_action_result = feed_elements([e], *args)
|
83
81
|
end
|
84
82
|
when (FIRE_ACTION.match(method_name) and has_action?($1))
|
85
83
|
# page_object.fire_some_action
|
86
84
|
a = action_for($1)
|
87
|
-
fire_action(a, *args)
|
85
|
+
PageObjectWrapper.current_action_result = fire_action(a, *args)
|
88
86
|
when (FIRE_ACTION.match(method_name) and has_alias?($1))
|
89
87
|
# page_object.fire_some_action
|
90
88
|
a = alias_for($1)
|
91
|
-
fire_action(a, *args)
|
89
|
+
PageObjectWrapper.current_action_result = fire_action(a, *args)
|
92
90
|
when (VALIDATE.match(method_name) and has_validator?($1))
|
93
91
|
# page_object.validate_something
|
94
92
|
v = validator_for($1)
|
95
|
-
run_validator(v, *args)
|
93
|
+
PageObjectWrapper.current_action_result = run_validator(v, *args)
|
96
94
|
when (SELECT_FROM.match(method_name) and has_table?($1))
|
97
95
|
# page_object.select_from_some_table(:header_column, {:column => 'value'})
|
98
96
|
table = table_for($1)
|
99
|
-
select_from(table, *args)
|
97
|
+
PageObjectWrapper.current_table_cell = select_from(table, *args)
|
100
98
|
when (SELECT_ROW_FROM.match(method_name) and has_table?($1))
|
101
99
|
# page_object.select_row_from_some_table(:number => 1, :column1 => value1, :column2 => value3, ...)
|
102
100
|
table = table_for($1)
|
103
|
-
select_row_from(table, args[0])
|
101
|
+
PageObjectWrapper.current_table_row = select_row_from(table, args[0])
|
104
102
|
when (PAGINATION_EACH.match(method_name) and has_pagination?($1))
|
105
103
|
# page_object.each_pagination
|
106
104
|
pagination = pagination_for($1)
|
107
|
-
run_each_subpage(pagination, *args, &block)
|
105
|
+
PageObjectWrapper.current_action_result = run_each_subpage(pagination, *args, &block)
|
108
106
|
when (PAGINATION_OPEN.match(method_name) and has_pagination?($1))
|
109
107
|
# page_object.open_padination(1)
|
110
108
|
pagination = pagination_for($1)
|
111
|
-
open_subpage(pagination, *args)
|
109
|
+
PageObjectWrapper.current_action_result = open_subpage(pagination, *args)
|
112
110
|
when (PRESS.match(method_name) and has_element?($1))
|
113
111
|
# page_object.press_element
|
114
112
|
element = element_for($1)
|
115
|
-
press(element)
|
113
|
+
PageObjectWrapper.current_action_result = press(element)
|
116
114
|
else
|
117
115
|
super
|
118
116
|
end
|
@@ -170,7 +168,7 @@ module PageObjectWrapper
|
|
170
168
|
end
|
171
169
|
|
172
170
|
def self.open_page label, optional_hash=nil
|
173
|
-
raise PageObjectWrapper::BrowserNotFound if
|
171
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil?
|
174
172
|
raise PageObjectWrapper::UnknownPageObject, label.inspect if not @@pages.collect(&:label_value).include?(label)
|
175
173
|
page_object = PageObject.find_page_object(label)
|
176
174
|
url = ''
|
@@ -184,11 +182,11 @@ module PageObjectWrapper
|
|
184
182
|
url.gsub!(/:#{k.to_s}/, v)
|
185
183
|
}
|
186
184
|
end
|
187
|
-
|
185
|
+
PageObjectWrapper.browser.goto url
|
188
186
|
end
|
189
187
|
|
190
188
|
def self.map_current_page label
|
191
|
-
raise PageObjectWrapper::BrowserNotFound if
|
189
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil?
|
192
190
|
raise PageObjectWrapper::UnknownPageObject, label.inspect if not @@pages.collect(&:label_value).include?(label)
|
193
191
|
page_object = PageObject.find_page_object(label)
|
194
192
|
page_object.elements.select{ |e| e.required_value == true }.each{ |required_element|
|
@@ -196,33 +194,16 @@ module PageObjectWrapper
|
|
196
194
|
watir_element = return_watir_element required_element
|
197
195
|
watir_element.wait_until_present REQUIRED_ELEMENT_WAIT_PERIOD
|
198
196
|
rescue Watir::Wait::TimeoutError => e
|
199
|
-
raise PageObjectWrapper::UnmappedPageObject, "#{label} <=> #{
|
197
|
+
raise PageObjectWrapper::UnmappedPageObject, "#{label} <=> #{PageObjectWrapper.browser.url} (#{e.message})" if not watir_element.present?
|
200
198
|
end
|
201
199
|
}
|
202
|
-
|
203
|
-
end
|
204
|
-
|
205
|
-
def self.current_page? label
|
206
|
-
self.map_current_page label
|
207
|
-
true
|
208
|
-
end
|
209
|
-
|
210
|
-
def self.current_page
|
211
|
-
@@current_page
|
200
|
+
PageObjectWrapper.current_page = page_object
|
212
201
|
end
|
213
202
|
|
214
203
|
def self.pages
|
215
204
|
@@pages
|
216
205
|
end
|
217
206
|
|
218
|
-
def self.browser=(val)
|
219
|
-
@@browser = val
|
220
|
-
end
|
221
|
-
|
222
|
-
def self.browser
|
223
|
-
@@browser
|
224
|
-
end
|
225
|
-
|
226
207
|
def elements_set(label, &block)
|
227
208
|
eset = ElementsSet.new(label)
|
228
209
|
eset.instance_eval(&block)
|
@@ -359,9 +340,9 @@ module PageObjectWrapper
|
|
359
340
|
def self.return_watir_element(e)
|
360
341
|
el = nil
|
361
342
|
if e.locator_value.is_a? Hash
|
362
|
-
el =
|
343
|
+
el = PageObjectWrapper.browser.send e.type, e.locator_value
|
363
344
|
elsif e.locator_value.is_a? String
|
364
|
-
el =
|
345
|
+
el = PageObjectWrapper.browser.instance_eval e.locator_value
|
365
346
|
end
|
366
347
|
el
|
367
348
|
end
|
@@ -371,8 +352,9 @@ module PageObjectWrapper
|
|
371
352
|
end
|
372
353
|
|
373
354
|
def feed_elements(elements, *args)
|
374
|
-
raise PageObjectWrapper::BrowserNotFound if
|
355
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
375
356
|
menu_name, cheef_menu = nil, nil
|
357
|
+
watir_elements = []
|
376
358
|
|
377
359
|
if args[0].is_a? Symbol
|
378
360
|
menu_name = args[0]
|
@@ -392,6 +374,7 @@ module PageObjectWrapper
|
|
392
374
|
food = e.menu_value[menu_name].to_s
|
393
375
|
end
|
394
376
|
watir_element = PageObject.return_watir_element e
|
377
|
+
watir_elements << watir_element
|
395
378
|
case watir_element
|
396
379
|
when Watir::CheckBox
|
397
380
|
watir_element.when_present.set eval(food) if ["true", "false"].include? food
|
@@ -405,11 +388,11 @@ module PageObjectWrapper
|
|
405
388
|
else
|
406
389
|
# this is an element which does not support input (e.g. button) => skipping it
|
407
390
|
next
|
408
|
-
#raise PageObjectWrapper::UnableToFeedObject, to_tree(
|
391
|
+
#raise PageObjectWrapper::UnableToFeedObject, to_tree(PageObjectWrapper.current_page, e) + ' check element type'
|
409
392
|
end
|
410
393
|
end
|
411
394
|
}
|
412
|
-
|
395
|
+
watir_elements
|
413
396
|
end
|
414
397
|
|
415
398
|
def feed_field(e, value)
|
@@ -426,31 +409,32 @@ module PageObjectWrapper
|
|
426
409
|
watir_element.when_present.set value
|
427
410
|
end
|
428
411
|
end
|
412
|
+
watir_element
|
429
413
|
end
|
430
414
|
|
431
415
|
|
432
416
|
def fire_action(a, *args)
|
433
|
-
raise PageObjectWrapper::BrowserNotFound if
|
417
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
434
418
|
block = (a.is_a? Action)? a.fire_block_value : action_for(a.action_value).fire_block_value
|
435
|
-
block_result =
|
419
|
+
block_result = PageObjectWrapper.browser.instance_exec *args, &block
|
436
420
|
if not a.next_page_value.nil?
|
437
421
|
self.class.map_current_page a.next_page_value
|
438
|
-
return
|
422
|
+
return PageObjectWrapper.current_page
|
439
423
|
else
|
440
424
|
return block_result
|
441
425
|
end
|
442
426
|
end
|
443
427
|
|
444
428
|
def run_validator(v, *args)
|
445
|
-
raise PageObjectWrapper::BrowserNotFound if
|
446
|
-
|
429
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
430
|
+
PageObjectWrapper.browser.instance_exec *args, &v.validate_block_value
|
447
431
|
end
|
448
432
|
|
449
433
|
def select_from(table, header, *args)
|
450
434
|
where = args[0]
|
451
435
|
next_page = args[1]
|
452
|
-
raise PageObjectWrapper::BrowserNotFound if
|
453
|
-
t =
|
436
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
437
|
+
t = PageObjectWrapper.browser.table(table.locator_value)
|
454
438
|
raise ArgumentError, "#{header.inspect} not a Symbol" if not header.is_a? Symbol
|
455
439
|
raise ArgumentError, "#{header.inspect} not in table header" if not table.header_value.include? header
|
456
440
|
search_for_index = table.header_value.index(header)
|
@@ -471,7 +455,7 @@ module PageObjectWrapper
|
|
471
455
|
if where.keys.first == :row # finding by row number
|
472
456
|
raise ArgumentError, "#{where.values.first.inspect} not Integer" if not ( where.values.first.is_a? Integer)
|
473
457
|
begin
|
474
|
-
found = t.rows[search_value
|
458
|
+
found = t.rows[search_value].cells[search_for_index] # +1 because we want rows to start from 0 (similar to columns)
|
475
459
|
rescue Watir::Exception::UnknownObjectException
|
476
460
|
found = nil
|
477
461
|
end
|
@@ -517,8 +501,8 @@ module PageObjectWrapper
|
|
517
501
|
def select_row_from(table, query)
|
518
502
|
conditions = query.clone
|
519
503
|
conditions.delete(:number)
|
520
|
-
raise PageObjectWrapper::BrowserNotFound if
|
521
|
-
t =
|
504
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
505
|
+
t = PageObjectWrapper.browser.table(table.locator_value)
|
522
506
|
found_row = {}
|
523
507
|
candidate_rows = nil
|
524
508
|
raise ArgumentError, "argument should be a meaningful Hash, got #{query.inspect}" if not query.is_a?(Hash) or query.empty?
|
@@ -558,12 +542,13 @@ module PageObjectWrapper
|
|
558
542
|
end
|
559
543
|
|
560
544
|
def run_each_subpage(p, opts=nil, &block)
|
561
|
-
raise PageObjectWrapper::BrowserNotFound if
|
545
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
562
546
|
limit = opts[:limit] if not opts.nil?
|
563
547
|
raise PageObjectWrapper::InvalidPagination, opts.inspect if limit < 0 if not limit.nil?
|
548
|
+
result = nil
|
564
549
|
|
565
|
-
|
566
|
-
current_link =
|
550
|
+
PageObjectWrapper.browser.instance_eval "(#{p.locator_value}).wait_until_present"
|
551
|
+
current_link = PageObjectWrapper.browser.instance_eval p.locator_value
|
567
552
|
raise PageObjectWrapper::InvalidPagination, p.locator_value+'; '+p.finds_value if not current_link.present?
|
568
553
|
current_page_number = p.finds_value.to_i
|
569
554
|
counter = 0
|
@@ -573,31 +558,32 @@ module PageObjectWrapper
|
|
573
558
|
current_link.when_present.click
|
574
559
|
self.class.map_current_page self.label_value
|
575
560
|
current_link.wait_while_present # waiting for the page to load by waiting current_link to become inactive
|
576
|
-
block.call self
|
561
|
+
result = block.call self
|
577
562
|
current_page_number += 1
|
578
563
|
current_link_locator = p.locator_value.gsub( p.finds_value.to_s, current_page_number.to_s )
|
579
|
-
current_link =
|
564
|
+
current_link = PageObjectWrapper.browser.instance_eval current_link_locator
|
580
565
|
counter += 1
|
581
566
|
end
|
567
|
+
result
|
582
568
|
end
|
583
569
|
|
584
570
|
def open_subpage p, n, *args
|
585
|
-
raise PageObjectWrapper::BrowserNotFound if
|
586
|
-
|
587
|
-
pagination_link =
|
571
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
572
|
+
PageObjectWrapper.browser.instance_eval "(#{p.locator_value.to_s}).wait_until_present"
|
573
|
+
pagination_link = PageObjectWrapper.browser.instance_eval p.locator_value
|
588
574
|
raise PageObjectWrapper::InvalidPagination, p.locator_value+'; '+p.finds_value if not pagination_link.present?
|
589
575
|
n_th_link_locator = p.locator_value.gsub( p.finds_value.to_s, n.to_s )
|
590
|
-
|
591
|
-
n_th_link =
|
576
|
+
PageObjectWrapper.browser.instance_eval "(#{n_th_link_locator}).wait_until_present"
|
577
|
+
n_th_link = PageObjectWrapper.browser.instance_eval n_th_link_locator
|
592
578
|
n_th_link.click
|
593
579
|
self.class.map_current_page self.label_value
|
594
580
|
self
|
595
581
|
end
|
596
582
|
|
597
583
|
def press e
|
598
|
-
raise PageObjectWrapper::BrowserNotFound if
|
584
|
+
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
599
585
|
watir_element = PageObject.return_watir_element e
|
600
|
-
raise PageObjectWrapper::InvalidElement, "Element #{e.locator_value} not found in #{
|
586
|
+
raise PageObjectWrapper::InvalidElement, "Element #{e.locator_value} not found in #{PageObjectWrapper.current_page}"\
|
601
587
|
if not watir_element.present?
|
602
588
|
raise PageObjectWrapper::InvalidElement, "Element #{e.locator_value} does not respond to #{e.press_action_value}"\
|
603
589
|
if not watir_element.respond_to? e.press_action_value
|
data/lib/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "returned values" do
|
4
|
+
before(:all){
|
5
|
+
@b = Watir::Browser.new
|
6
|
+
PageObjectWrapper.use_browser @b
|
7
|
+
}
|
8
|
+
|
9
|
+
after(:all){ PageObjectWrapper.browser.quit }
|
10
|
+
|
11
|
+
it "returns corresponding values" do
|
12
|
+
tp = PageObjectWrapper.open_page :some_test_page
|
13
|
+
res = PageObjectWrapper.current_page
|
14
|
+
res.should be_a PageObjectWrapper::PageObject
|
15
|
+
res.label_value.should eq :some_test_page
|
16
|
+
|
17
|
+
tp.feed_tf 'text'
|
18
|
+
res = PageObjectWrapper.current_action_result
|
19
|
+
res.should be_a Watir::TextField
|
20
|
+
res.value.should eq 'text'
|
21
|
+
|
22
|
+
tp.feed_test_elements :loud
|
23
|
+
res = PageObjectWrapper.current_action_result
|
24
|
+
res.should be_a Array
|
25
|
+
res.collect(&:value).should eq ["bar", "tf food", "ta food", "1", "2", "on", "on", "one", "one"]
|
26
|
+
|
27
|
+
tp = tp.fire_press_cool_button
|
28
|
+
res = PageObjectWrapper.current_action_result
|
29
|
+
res.should be_a PageObjectWrapper::PageObject
|
30
|
+
res.label_value.should eq :test_page_with_table
|
31
|
+
|
32
|
+
tp.select_from_test_table(:column_1, :row => 0)
|
33
|
+
res = PageObjectWrapper.current_table_cell
|
34
|
+
res.should be_a Watir::TableCell
|
35
|
+
res.text.should eq '42'
|
36
|
+
|
37
|
+
tp.select_row_from_test_table(:number => 0)
|
38
|
+
res = PageObjectWrapper.current_table_row
|
39
|
+
res.should be_a Hash
|
40
|
+
res[:column_1].text.should eq '42'
|
41
|
+
end
|
42
|
+
end
|
data/spec/feed_xxx_spec.rb
CHANGED
@@ -24,9 +24,9 @@ describe "page_object.feed_xxx" do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "returns current page object" do
|
27
|
-
@tp.feed_tf_standalone(:quite).should be_a
|
28
|
-
@tp.feed_test_elements(:quite).should be_a
|
29
|
-
@tp.feed_all(:quite).should be_a
|
27
|
+
@tp.feed_tf_standalone(:quite).should be_a Array
|
28
|
+
@tp.feed_test_elements(:quite).should be_a Array
|
29
|
+
@tp.feed_all(:quite).should be_a Array
|
30
30
|
end
|
31
31
|
|
32
32
|
describe "feed_standalone_element" do
|
data/spec/open_page_spec.rb
CHANGED
@@ -50,14 +50,14 @@ describe "PageObjectWrapper.open_page" do
|
|
50
50
|
begin
|
51
51
|
PageObjectWrapper.open_page(:dynamic_url_page, :domain => 'google.com')
|
52
52
|
rescue PageObjectWrapper::UnmappedPageObject
|
53
|
-
PageObjectWrapper
|
53
|
+
PageObjectWrapper.browser.url.should =~ /google.\w+\/:path/
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
57
57
|
context "all dynamic parameters specified" do
|
58
58
|
it "opens page with all parameters replaced with specified" do
|
59
59
|
PageObjectWrapper.open_page(:dynamic_url_page, :domain => 'google.com', :path => 'advanced_search')
|
60
|
-
PageObjectWrapper
|
60
|
+
PageObjectWrapper.browser.url.should =~ /google.\w+\/advanced_search/
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -94,8 +94,8 @@ describe "page_object.select_from_xxx" do
|
|
94
94
|
end
|
95
95
|
context "found by row number" do
|
96
96
|
it "returns found cells" do
|
97
|
-
tp.select_from_table_without_header(:column_0, :row => 2).text.should eq '
|
98
|
-
tp.select_from_table_with_header(:country, :row => 3).text.should eq '
|
97
|
+
tp.select_from_table_without_header(:column_0, :row => 2).text.should eq 'Finland'
|
98
|
+
tp.select_from_table_with_header(:country, :row => 3).text.should eq 'Iceland'
|
99
99
|
end
|
100
100
|
it "returns nil" do
|
101
101
|
tp.select_from_table_with_header(:country, :row => 123).should eq nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_object_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: watir-webdriver
|
16
|
-
requirement: &
|
16
|
+
requirement: &8756800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *8756800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &8792960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *8792960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: babosa
|
38
|
-
requirement: &
|
38
|
+
requirement: &8791560 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *8791560
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &8810300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *8810300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: debugger
|
60
|
-
requirement: &
|
60
|
+
requirement: &8807920 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *8807920
|
69
69
|
description: Wraps watir-webdriver with convenient testing interface, based on PageObjects
|
70
70
|
automation testing pattern. Simplifies resulting automated test understanding.
|
71
71
|
email:
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/page_object_wrapper/known_elements.rb
|
107
107
|
- lib/version.rb
|
108
108
|
- page_object_wrapper.gemspec
|
109
|
+
- spec/currents_spec.rb
|
109
110
|
- spec/define_page_object_spec.rb
|
110
111
|
- spec/feed_xxx_spec.rb
|
111
112
|
- spec/fire_xxx_and_validate_xxx_spec.rb
|
@@ -147,6 +148,7 @@ signing_key:
|
|
147
148
|
specification_version: 3
|
148
149
|
summary: Wraps watir-webdriver with convenient testing interface.
|
149
150
|
test_files:
|
151
|
+
- spec/currents_spec.rb
|
150
152
|
- spec/define_page_object_spec.rb
|
151
153
|
- spec/feed_xxx_spec.rb
|
152
154
|
- spec/fire_xxx_and_validate_xxx_spec.rb
|