page-object 0.8.6 → 0.8.6.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.
data/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ === Version 0.8.6.1 / 2013-3-4
2
+ * Enhancements
3
+ * Added lable locators for checkbox, text area, select list, radio button and file field (Thanks Alex Rodionov)
4
+ * Updated to use the latest selenium-webdriver 2.31.0
5
+ * Updated to use the latest page_navigation 0.7
6
+
1
7
  === Version 0.8.6 / 2013-2-27
2
8
  * Enhancements
3
9
  * Added support for the svg element
@@ -24,6 +24,7 @@ Feature: Check Box
24
24
  | xpath |
25
25
  | index |
26
26
  | value |
27
+ | label |
27
28
 
28
29
  @selenium_only
29
30
  Scenario Outline: Locating check boxes on the page
@@ -47,7 +48,7 @@ Feature: Check Box
47
48
  When I retrieve a check box element
48
49
  Then I should know it exists
49
50
  And I should know it is visible
50
-
51
+
51
52
  Scenario: Finding a check box dynamically
52
53
  When I select the first check box while the script is executing
53
54
  Then I should see that the checkbox exists
@@ -19,6 +19,7 @@ Feature: File Field
19
19
  | xpath |
20
20
  | title |
21
21
  | index |
22
+ | label |
22
23
 
23
24
  @selenium_only
24
25
  Scenario Outline: Locating file fields on the Page
@@ -12,8 +12,10 @@
12
12
  <input id="hidden_field_id" name="hidden_field_name" class="hidden_field_class"
13
13
  size="40" type="hidden" value="12345"/>
14
14
 
15
+ <label for="text_area_id">Text Area</label>
15
16
  <textarea rows="2" cols="20" id="text_area_id" class="text_area_class" name="text_area_name"></textarea>
16
17
 
18
+ <label for="sel_list_id">Select List</label>
17
19
  <select name="sel_list_name" id="sel_list_id" class="sel_list_class">
18
20
  <option value="option1">Test 1</option>
19
21
  <option value="option2">Test 2</option>
@@ -31,7 +33,7 @@
31
33
  <area shape="circle" coords="90,58,3" href="mercur.html"/>
32
34
  <area shape="circle" coords="124,58,8" href="venus.html"/>
33
35
  </map>
34
-
36
+
35
37
  <canvas id="canvas" name="canvas" class="canvas" width="200" height="100"></canvas>
36
38
  <script type="text/javascript">
37
39
  var c=document.getElementById("myCanvas");
@@ -53,15 +55,17 @@
53
55
  <source src="movie.ogg" type="video/ogg" />
54
56
  Your browser does not support the video tag.
55
57
  </video>
56
-
58
+
57
59
  <svg width="100" height="100" id="the_svg">
58
60
  <circle cx="50" cy="50" r="40" fill="red" stroke="blue" stroke-width="5" />
59
- </svg>
61
+ </svg>
60
62
 
61
63
  <a href="success.html" id="link_id" name="link_name" class="link_class" title="link_title">Google Search</a>
62
64
 
65
+ <label for="cb_id">Checkbox</label>
63
66
  <input id="cb_id" name="cb_name" class="cb_class" type="checkbox" value="1"/>
64
67
 
68
+ <label for="milk_id">Radio</label>
65
69
  <input type="radio" id="milk_id" name="milk_name" class="milk_class" value="Milk"> Milk <br/>
66
70
  <input type="radio" id="butter_id" name="butter_name" class="butter_class" value="Butter">Butter
67
71
 
@@ -122,6 +126,7 @@
122
126
  <form id="form_id" class="form_class" name="form_name" action="/">
123
127
  </form>
124
128
 
129
+ <label for="file_field_id">File Field</label>
125
130
  <input type="file" name="file_field_name" id="file_field_id" class="file_field_class" title="file_field_title" />
126
131
 
127
132
  <ul id="ul_id" name="ul_name" class="ul_class">
@@ -25,6 +25,7 @@ Feature: Radio Buttons
25
25
  | xpath |
26
26
  | value |
27
27
  | index |
28
+ | label |
28
29
 
29
30
  @selenium_only
30
31
  Scenario Outline: Locating radio buttons on the Page
@@ -23,6 +23,7 @@ Feature: Select List
23
23
  | name |
24
24
  | xpath |
25
25
  | index |
26
+ | label |
26
27
 
27
28
  @selenium_only
28
29
  Scenario Outline: Locating select lists on the Page using Selenium
@@ -75,7 +76,7 @@ Feature: Select List
75
76
  Scenario: Selecting an option by its value
76
77
  When I select an option using the value "option2"
77
78
  Then the selected option should be "Test 2"
78
-
79
+
79
80
  Scenario: Getting the value from a selected option
80
81
  When I select an option using the value "option2"
81
82
  Then the selected option should have a value of "option2"
@@ -34,6 +34,7 @@ class Page
34
34
  text_area(:text_area_value, :value => "")
35
35
  text_area(:text_area_class_index, :class => "text_area_class", :index => 0)
36
36
  text_area(:text_area_name_index, :name => "text_area_name", :index => 0)
37
+ text_area(:text_area_label, :label => "Text Area")
37
38
 
38
39
  hidden_field(:hidden_field_id, :id => "hidden_field_id")
39
40
  hidden_field(:hidden_field_class, :class => "hidden_field_class")
@@ -72,6 +73,7 @@ class Page
72
73
  select_list(:sel_list_class_index, :class => "sel_list_class", :index => 0)
73
74
  select_list(:sel_list_name_index, :name => "sel_list_name", :index => 0)
74
75
  select_list(:sel_list_multiple, :id => "sel_list_multiple")
76
+ select_list(:sel_list_label, :label => "Select List")
75
77
 
76
78
  checkbox(:cb_id, :id => 'cb_id')
77
79
  checkbox(:cb_name, :name => 'cb_name')
@@ -82,6 +84,7 @@ class Page
82
84
  checkbox(:cb_value, :value => '1')
83
85
  checkbox(:cb_class_index, :class => "cb_class", :index => 0)
84
86
  checkbox(:cb_name_index, :name => "cb_name", :index => 0)
87
+ checkbox(:cb_label, :label => 'Checkbox')
85
88
 
86
89
  radio_button(:milk_id, :id => 'milk_id')
87
90
  radio_button(:milk_name, :name => 'milk_name')
@@ -92,6 +95,7 @@ class Page
92
95
  radio_button(:milk_xpath, :xpath => "//input[@type='radio']")
93
96
  radio_button(:milk_class_index, :class => "milk_class", :index => 0)
94
97
  radio_button(:milk_name_index, :name => "milk_name", :index => 0)
98
+ radio_button(:milk_label, :label => "Radio")
95
99
 
96
100
  radio_button(:butter_id, :id => 'butter_id')
97
101
 
@@ -164,7 +168,7 @@ class Page
164
168
  button(:btn_class_index, :class => "btn_class", :index => 0)
165
169
  button(:btn_name_index, :name => "btn_name", :index => 0)
166
170
 
167
-
171
+
168
172
  button(:disabled_button, :value => 'Disabled')
169
173
 
170
174
  image(:image_id, :id => 'image_id')
@@ -294,14 +298,15 @@ class Page
294
298
  file_field(:file_field_class_index, :class => 'file_field_class', :index => 0)
295
299
  file_field(:file_field_name_index, :name => 'file_field_name', :index => 0)
296
300
  file_field(:file_field_xpath, :xpath => "//input[@type='file']")
301
+ file_field(:file_field_label, :label => "File Field")
297
302
 
298
303
  label(:label_id, :id => 'label_id')
299
304
  label(:label_name, :name => 'label_name')
300
305
  label(:label_class, :class => 'label_class')
301
306
  label(:label_css, :css => '.label_class')
302
307
  label(:label_text, :text => 'page-object is the best!')
303
- label(:label_index, :index => 1)
304
- label(:label_xpath, :xpath => '//label[2]')
308
+ label(:label_index, :index => 5)
309
+ label(:label_xpath, :xpath => '//label[6]')
305
310
  label(:label_class_index, :class => "label_class", :index => 0)
306
311
  label(:label_name_index, :name => "label_name", :index => 0)
307
312
 
@@ -344,7 +349,7 @@ class Page
344
349
  video(:video_xpath, :xpath => '//video')
345
350
  video(:video_class_index, :class => 'video', :index => 0)
346
351
  video(:video_name_index, :name => 'video', :index => 0)
347
-
352
+
348
353
  element(:article_id, :article, :id => 'article_id')
349
354
  element(:header_id, :header, :id => 'header_id')
350
355
  element(:footer_id, :footer, :id => 'footer_id')
@@ -19,6 +19,7 @@ Feature: Text Area
19
19
  | name |
20
20
  | xpath |
21
21
  | index |
22
+ | label |
22
23
 
23
24
  @selenium_only
24
25
  Scenario Outline: Locating text area on the Page
@@ -42,7 +43,7 @@ Feature: Text Area
42
43
  When I find a text area while the script is executing
43
44
  Then I should see that the text area exists
44
45
  And I should be able to type "I found it" into the area element
45
-
46
+
46
47
  Scenario: Clearing the text area
47
48
  When I type "abcdefghijklmnop" into the text area
48
49
  Then the text area should contain "abcdefghijklmnop"
@@ -194,6 +194,7 @@ module PageObject
194
194
  # * :index => Watir and Selenium
195
195
  # * :name => Watir and Selenium
196
196
  # * :xpath => Watir and Selenium
197
+ # * :label => Watir and Selenium
197
198
  # @param optional block to be invoked when element method is called
198
199
  #
199
200
  def text_area(name, identifier={:index => 0}, &block)
@@ -231,6 +232,7 @@ module PageObject
231
232
  # * :text => Watir only
232
233
  # * :value => Watir only
233
234
  # * :xpath => Watir and Selenium
235
+ # * :label => Watir and Selenium
234
236
  # @param optional block to be invoked when element method is called
235
237
  #
236
238
  def select_list(name, identifier={:index => 0}, &block)
@@ -242,12 +244,12 @@ module PageObject
242
244
  return platform.select_list_value_set(identifier.clone, value) unless block_given?
243
245
  self.send("#{name}_element").select(value)
244
246
  end
245
-
247
+
246
248
  define_method("#{name}_options") do
247
249
  element = self.send("#{name}_element")
248
250
  (element && element.options) ? element.options.collect(&:text) : []
249
251
  end
250
-
252
+
251
253
  standard_methods(name, identifier, 'select_list_for', &block)
252
254
  end
253
255
  alias_method :select, :select_list
@@ -307,6 +309,7 @@ module PageObject
307
309
  # * :name => Watir and Selenium
308
310
  # * :value => Watir and Selenium
309
311
  # * :xpath => Watir and Selenium
312
+ # * :label => Watir and Selenium
310
313
  # @param optional block to be invoked when element method is called
311
314
  #
312
315
  def checkbox(name, identifier={:index => 0}, &block)
@@ -347,6 +350,7 @@ module PageObject
347
350
  # * :name => Watir and Selenium
348
351
  # * :value => Watir and Selenium
349
352
  # * :xpath => Watir and Selenium
353
+ # * :label => Watir and Selenium
350
354
  # @param optional block to be invoked when element method is called
351
355
  #
352
356
  def radio_button(name, identifier={:index => 0}, &block)
@@ -859,6 +863,7 @@ module PageObject
859
863
  # * :name => Watir and Selenium
860
864
  # * :title => Watir and Selenium
861
865
  # * :xpath => Watir and Selenium
866
+ # * :label => Watir and Selenium
862
867
  # @param optional block to be invoked when element method is called
863
868
  #
864
869
  def file_field(name, identifier={:index => 0}, &block)
@@ -1118,7 +1123,7 @@ module PageObject
1118
1123
  platform.send(method, identifier.clone).exists?
1119
1124
  end
1120
1125
  end
1121
-
1126
+
1122
1127
  #
1123
1128
  # adds a method that will return an indexed property. The property will respond to
1124
1129
  # the [] method with an object that has a set of normal page_object properties that
@@ -11,13 +11,13 @@ module PageObject
11
11
  protected
12
12
 
13
13
  def self.watir_finders
14
- super + [:value]
14
+ super + [:value, :label]
15
15
  end
16
16
 
17
17
  def self.selenium_finders
18
- super + [:value]
18
+ super + [:value, :label]
19
19
  end
20
-
20
+
21
21
  def include_platform_for platform
22
22
  super
23
23
  if platform[:platform] == :watir_webdriver
@@ -33,6 +33,6 @@ module PageObject
33
33
  end
34
34
 
35
35
  ::PageObject::Elements.type_to_class[:checkbox] = ::PageObject::Elements::CheckBox
36
-
36
+
37
37
  end
38
38
  end
@@ -11,11 +11,11 @@ module PageObject
11
11
  protected
12
12
 
13
13
  def self.watir_finders
14
- super + [:title]
14
+ super + [:title, :label]
15
15
  end
16
16
 
17
17
  def self.selenium_finders
18
- super + [:title]
18
+ super + [:title, :label]
19
19
  end
20
20
 
21
21
  def include_platform_for platform
@@ -33,6 +33,6 @@ module PageObject
33
33
  end
34
34
 
35
35
  ::PageObject::Elements.type_to_class[:file] = ::PageObject::Elements::FileField
36
-
36
+
37
37
  end
38
38
  end
@@ -9,13 +9,13 @@ module PageObject
9
9
  end
10
10
 
11
11
  protected
12
-
12
+
13
13
  def self.watir_finders
14
- super + [:value]
14
+ super + [:value, :label]
15
15
  end
16
16
 
17
17
  def self.selenium_finders
18
- super + [:value]
18
+ super + [:value, :label]
19
19
  end
20
20
 
21
21
  def include_platform_for platform
@@ -15,7 +15,11 @@ module PageObject
15
15
  end
16
16
 
17
17
  def self.watir_finders
18
- super + [:text, :value]
18
+ super + [:text, :value, :label]
19
+ end
20
+
21
+ def self.selenium_finders
22
+ super + [:label]
19
23
  end
20
24
 
21
25
  def include_platform_for platform
@@ -8,6 +8,14 @@ module PageObject
8
8
  include_platform_for platform
9
9
  end
10
10
 
11
+ def self.watir_finders
12
+ super + [:label]
13
+ end
14
+
15
+ def self.selenium_finders
16
+ super + [:label]
17
+ end
18
+
11
19
  protected
12
20
 
13
21
  def include_platform_for platform
@@ -25,6 +33,6 @@ module PageObject
25
33
  end
26
34
 
27
35
  ::PageObject::Elements.tag_to_class[:textarea] = ::PageObject::Elements::TextArea
28
-
36
+
29
37
  end
30
38
  end
@@ -1,4 +1,4 @@
1
1
  module PageObject
2
2
  # @private
3
- VERSION = "0.8.6"
3
+ VERSION = "0.8.6.1"
4
4
  end
data/page-object.gemspec CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  s.add_dependency 'watir-webdriver', '>= 0.6.2'
23
- s.add_dependency 'selenium-webdriver', '>= 2.30.0'
24
- s.add_dependency 'page_navigation', '>= 0.6'
23
+ s.add_dependency 'selenium-webdriver', '>= 2.31.0'
24
+ s.add_dependency 'page_navigation', '>= 0.7'
25
25
 
26
26
  s.add_development_dependency 'rspec', '>= 2.12.0'
27
27
  s.add_development_dependency 'cucumber', '>= 1.2.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: page-object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.6
4
+ version: 0.8.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-27 00:00:00.000000000 Z
12
+ date: 2013-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: watir-webdriver
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 2.30.0
37
+ version: 2.31.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 2.30.0
45
+ version: 2.31.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: page_navigation
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: '0.6'
53
+ version: '0.7'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: '0.6'
61
+ version: '0.7'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -397,7 +397,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
397
397
  version: '0'
398
398
  segments:
399
399
  - 0
400
- hash: -3437791365044287985
400
+ hash: -3618405462475899923
401
401
  required_rubygems_version: !ruby/object:Gem::Requirement
402
402
  none: false
403
403
  requirements:
@@ -406,7 +406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
406
406
  version: '0'
407
407
  segments:
408
408
  - 0
409
- hash: -3437791365044287985
409
+ hash: -3618405462475899923
410
410
  requirements: []
411
411
  rubyforge_project: page-object
412
412
  rubygems_version: 1.8.25