selenium_fury 0.5.12 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/.rvmrc +2 -7
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/features/custom_generator.feature +1 -1
  5. data/features/generate_page_object.feature +1 -1
  6. data/features/step_definitions/custom_generator_steps.rb +81 -125
  7. data/features/step_definitions/generate_page_object_steps.rb +3 -3
  8. data/features/step_definitions/validate_page_object_steps.rb +4 -4
  9. data/features/support/env.rb +10 -4
  10. data/features/support/hooks.rb +2 -1
  11. data/features/validate_page_object.feature +3 -3
  12. data/lib/selenium_fury.rb +3 -4
  13. data/lib/selenium_fury/common/selenium_api_chooser.rb +19 -7
  14. data/lib/selenium_fury/selenium_client/locator_finder.rb +15 -0
  15. data/lib/selenium_fury/selenium_client/page_generator.rb +1 -0
  16. data/lib/selenium_fury/selenium_client/page_validator.rb +12 -37
  17. data/lib/selenium_fury/selenium_web_driver/element_finder.rb +16 -1
  18. data/lib/selenium_fury/selenium_web_driver/page_object.rb +2 -2
  19. data/lib/selenium_fury/selenium_web_driver/page_object_components.rb +1 -1
  20. data/spec/common/selenium_api_chooser_spec.rb +11 -11
  21. data/spec/selenium_client/custom_generators_spec.rb +23 -7
  22. data/spec/selenium_client/page_generator_spec.rb +3 -3
  23. data/spec/selenium_client/page_validator_spec.rb +5 -5
  24. data/spec/selenium_client/test_page_rc_spec.rb +14 -0
  25. data/spec/selenium_web_driver/element_finder_spec.rb +1 -1
  26. data/spec/selenium_web_driver/page_generator_spec.rb +10 -10
  27. data/spec/selenium_web_driver/page_object_spec.rb +69 -40
  28. data/spec/selenium_web_driver/page_validator_spec.rb +5 -5
  29. data/spec/spec_helper.rb +13 -12
  30. data/spec/test_page/test_page.html +70 -0
  31. data/spec/test_page/test_page.rb +21 -0
  32. data/spec/test_page/test_page_custom_generator_configuration.rb +16 -0
  33. data/spec/test_page/test_page_rc.rb +25 -0
  34. metadata +194 -181
  35. data/selenium_fury.gemspec +0 -118
  36. data/spec/selenium_client/advanced_search.rb +0 -55
  37. data/spec/selenium_client/advanced_search_custom_generator_configuration.rb +0 -16
  38. data/spec/selenium_client/advanced_search_spec.rb +0 -15
  39. data/spec/selenium_web_driver/advanced_search.rb +0 -47
  40. data/spec/selenium_web_driver/inquiry_side_bar.rb +0 -7
  41. data/spec/selenium_web_driver/property_page.rb +0 -3
data/spec/spec_helper.rb CHANGED
@@ -1,20 +1,21 @@
1
- $:.unshift(File.dirname(__FILE__) + '/../lib')
2
- $:.unshift(File.dirname(__FILE__))
3
-
4
1
  require 'rubygems'
5
2
  require 'bundler'
6
- Bundler.setup
7
- require "selenium_fury"
8
- require "faker"
9
- require "rspec"
10
- require "selenium_client/advanced_search_custom_generator_configuration"
11
- require "selenium_client/advanced_search"
12
- require "selenium_web_driver/inquiry_side_bar"
13
- require "selenium_web_driver/property_page"
14
- require "selenium_web_driver/advanced_search"
3
+
4
+ require 'selenium_fury'
5
+
6
+ require "test_page/test_page_custom_generator_configuration"
7
+ require "test_page/test_page_rc"
8
+
9
+ TEST_PAGE_URL="file://"+File.dirname(__FILE__) + "/test_page/test_page.html"
15
10
  include SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver
16
11
  include SeleniumFury::SeleniumClient::CreateSeleniumClientDriver
12
+
17
13
  RSpec.configure do |config|
14
+ config.before(:each) do
15
+ # because we use get_page_object in some of our tests, there's no guarantee that class is loaded at the
16
+ # beginning of each test. checkout massive comment in page_object_spec for more details.
17
+ load "test_page/test_page.rb"
18
+ end
18
19
  config.after(:each) do
19
20
  browser.close_current_browser_session unless(browser.nil? || browser.session_id.nil?)
20
21
  driver.quit unless driver.nil?
@@ -0,0 +1,70 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>SeleniumFury Test Page</title>
6
+ <script type="text/javascript">
7
+ function displayMessage() {
8
+ document.getElementById('message').innerHTML = document.form.msgtext.value
9
+ }
10
+ </script>
11
+ </head>
12
+ <body>
13
+
14
+ <div id="message"></div>
15
+
16
+ <form id="form" name="form">
17
+ <label for="textarea">Textarea</label>
18
+ <textarea id="textarea">This is a textarea field.
19
+ </textarea>
20
+ <br/>
21
+ <label for="select">Select</label>
22
+ <select id="select">
23
+ <option value="volvo">Volvo</option>
24
+ <option value="saab">Saab</option>
25
+ <option value="mercedes">Mercedes</option>
26
+ <option value="audi">Audi</option>
27
+ </select>
28
+ <br/>
29
+ <label for="input_button">Button</label>
30
+ <input id="input_button" type="button" value="Click me"/>
31
+ <br/>
32
+ <label for="input_checkbox">Checkbox</label>
33
+ <input id="input_checkbox" type="checkbox"/>
34
+ <br/>
35
+ <label for="input_file">File</label>
36
+ <input id="input_file" type="file"/>
37
+ <br/>
38
+ <input id="input_hidden" type="hidden"/>
39
+ <br/>
40
+ <label for="input_image">Image</label>
41
+ <input id="input_image" type="image" alt="input image"/>
42
+ <br/>
43
+ <label for="input_password">Password</label>
44
+ <input id="input_password" type="password"/>
45
+ <br/>
46
+ <label for="input_radio">Radio</label>
47
+ <input id="input_radio" type="radio"/>
48
+ <br/>
49
+ <label for="input_reset">Reset</label>
50
+ <input id="input_reset" type="reset"/>
51
+ <br/>
52
+ <label for="input_submit">Submit</label>
53
+ <input id="input_submit" type="submit"/>
54
+ <br/>
55
+ <label for="input_text">Text</label>
56
+ <input id="input_text" type="text"/>
57
+ <br/>
58
+ <fieldset>
59
+ <legend>Input test:</legend>
60
+ <label for="input_message">Message Text:</label>
61
+ <input id="input_message" name="msgtext" type="text" />
62
+ <br/>
63
+ <input id="input_msg_button" type="button" value="Click me" onClick="displayMessage()"/>
64
+ </fieldset>
65
+ </form>
66
+ <a id="link111111" href="http://news.ycombinator.com/">Link 1</a>
67
+ <a id="link222222" href="http://yahoo.com">Link 2</a>
68
+ <a id="link333333" href="http://google.com">Link 3</a>
69
+ </body>
70
+ </html>
@@ -0,0 +1,21 @@
1
+ class TestPage < PageObject
2
+ element :form, {:id => "form"}
3
+ element :input_button, {:id => "input_button"}
4
+ element :input_checkbox, {:id => "input_checkbox"}
5
+ element :input_file, {:id => "input_file"}
6
+ element :input_hidden, {:id => "input_hidden"}
7
+ element :input_image, {:id => "input_image"}
8
+ element :input_message, {:id => "input_message"}
9
+ element :input_msg_button, {:id => "input_msg_button"}
10
+ element :input_password, {:id => "input_password"}
11
+ element :input_radio, {:id => "input_radio"}
12
+ element :input_reset, {:id => "input_reset"}
13
+ element :input_submit, {:id => "input_submit"}
14
+ element :input_text, {:id => "input_text"}
15
+ element :select, {:id => "select"}
16
+ element :textarea, {:id => "textarea"}
17
+
18
+ def click_check_box
19
+ input_checkbox.click
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ class TestPageCustomGeneratorConfiguration
2
+ def initialize(options={})
3
+ @selector ="a"
4
+ @nokogiri_element=options[:nokogiri_element]
5
+ end
6
+
7
+ attr_accessor :selector, :nokogiri_element
8
+
9
+ def name
10
+ return nokogiri_element.text
11
+ end
12
+
13
+ def value
14
+ return nokogiri_element.get_attribute("id")
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ class TestPageRc
2
+ def initialize *browser
3
+ @browser = *browser
4
+ @form = "form"
5
+ @input_button = "input_button"
6
+ @input_checkbox = "input_checkbox"
7
+ @input_file = "input_file"
8
+ @input_hidden = "input_hidden"
9
+ @input_image = "input_image"
10
+ @input_message = "input_message"
11
+ @input_msg_button = "input_msg_button"
12
+ @input_password = "input_password"
13
+ @input_radio = "input_radio"
14
+ @input_reset = "input_reset"
15
+ @input_submit = "input_submit"
16
+ @input_text = "input_text"
17
+ @select = "select"
18
+ @textarea = "textarea"
19
+ end
20
+ attr_accessor :browser, :form, :input_button, :input_checkbox, :input_file,
21
+ :input_hidden, :input_image, :input_message, :input_msg_button, :input_password,
22
+ :input_radio, :input_reset, :input_submit, :input_text, :select,
23
+ :textarea
24
+
25
+ end
metadata CHANGED
@@ -1,203 +1,218 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: selenium_fury
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 12
10
- version: 0.5.12
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Scott Sims
14
9
  - Tim Tischler
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-06-27 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- requirement: *id001
33
- prerelease: false
13
+ date: 2012-08-24 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
34
16
  name: selenium-webdriver
35
- - !ruby/object:Gem::Dependency
36
- type: :runtime
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
38
18
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
- requirement: *id002
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
47
24
  prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
48
32
  name: nokogiri
49
- - !ruby/object:Gem::Dependency
50
- type: :development
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
52
34
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
- requirement: *id003
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
61
40
  prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
62
48
  name: yard
63
- - !ruby/object:Gem::Dependency
64
- type: :development
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
66
50
  none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
74
- requirement: *id004
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
75
56
  prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
76
64
  name: jeweler
77
- - !ruby/object:Gem::Dependency
78
- type: :development
79
- version_requirements: &id005 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
80
66
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
88
- requirement: *id005
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
89
72
  prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
90
80
  name: rdiscount
91
- - !ruby/object:Gem::Dependency
92
- type: :development
93
- version_requirements: &id006 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
94
82
  none: false
95
- requirements:
96
- - - "="
97
- - !ruby/object:Gem::Version
98
- hash: 19
99
- segments:
100
- - 2
101
- - 7
102
- - 0
103
- version: 2.7.0
104
- requirement: *id006
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
105
88
  prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
106
96
  name: rspec
107
- - !ruby/object:Gem::Dependency
108
- type: :development
109
- version_requirements: &id007 !ruby/object:Gem::Requirement
97
+ requirement: !ruby/object:Gem::Requirement
110
98
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
118
- requirement: *id007
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
119
104
  prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
120
112
  name: cucumber
121
- - !ruby/object:Gem::Dependency
122
- type: :development
123
- version_requirements: &id008 !ruby/object:Gem::Requirement
113
+ requirement: !ruby/object:Gem::Requirement
124
114
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- requirement: *id008
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
133
120
  prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
134
128
  name: bundler
135
- - !ruby/object:Gem::Dependency
136
- type: :development
137
- version_requirements: &id009 !ruby/object:Gem::Requirement
129
+ requirement: !ruby/object:Gem::Requirement
138
130
  none: false
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- hash: 3
143
- segments:
144
- - 0
145
- version: "0"
146
- requirement: *id009
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
147
136
  prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
148
144
  name: builder
149
- - !ruby/object:Gem::Dependency
150
- type: :development
151
- version_requirements: &id010 !ruby/object:Gem::Requirement
145
+ requirement: !ruby/object:Gem::Requirement
152
146
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
158
- - 0
159
- version: "0"
160
- requirement: *id010
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
161
152
  prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
162
160
  name: rake
163
- - !ruby/object:Gem::Dependency
164
- type: :development
165
- version_requirements: &id011 !ruby/object:Gem::Requirement
161
+ requirement: !ruby/object:Gem::Requirement
166
162
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- hash: 3
171
- segments:
172
- - 0
173
- version: "0"
174
- requirement: *id011
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
175
168
  prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
176
  name: faker
177
- - !ruby/object:Gem::Dependency
178
- type: :runtime
179
- version_requirements: &id012 !ruby/object:Gem::Requirement
177
+ requirement: !ruby/object:Gem::Requirement
180
178
  none: false
181
- requirements:
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- hash: 3
185
- segments:
186
- - 0
187
- version: "0"
188
- requirement: *id012
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ type: :development
189
184
  prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
190
192
  name: nokogiri
191
- description: Generate and validate page objects with this page object factory for Selenium.
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ type: :runtime
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ description: Generate and validate page objects with this page object factory for
208
+ Selenium.
192
209
  email: ssims98@gmail.com
193
210
  executables: []
194
-
195
211
  extensions: []
196
-
197
- extra_rdoc_files:
212
+ extra_rdoc_files:
198
213
  - LICENSE
199
214
  - README.md
200
- files:
215
+ files:
201
216
  - .rvmrc
202
217
  - Changelog.md
203
218
  - Gemfile
@@ -227,56 +242,54 @@ files:
227
242
  - lib/selenium_fury/selenium_web_driver/page_object.rb
228
243
  - lib/selenium_fury/selenium_web_driver/page_object_components.rb
229
244
  - lib/selenium_fury/selenium_web_driver/page_validator.rb
230
- - selenium_fury.gemspec
231
245
  - spec/common/page_parser_spec.rb
232
246
  - spec/common/selenium_api_chooser_spec.rb
233
- - spec/selenium_client/advanced_search.rb
234
- - spec/selenium_client/advanced_search_custom_generator_configuration.rb
235
- - spec/selenium_client/advanced_search_spec.rb
236
247
  - spec/selenium_client/custom_generators_spec.rb
237
248
  - spec/selenium_client/locator_finder_spec.rb
238
249
  - spec/selenium_client/page_generator_spec.rb
239
250
  - spec/selenium_client/page_validator_spec.rb
240
- - spec/selenium_web_driver/advanced_search.rb
251
+ - spec/selenium_client/test_page_rc_spec.rb
241
252
  - spec/selenium_web_driver/element_finder_spec.rb
242
- - spec/selenium_web_driver/inquiry_side_bar.rb
243
253
  - spec/selenium_web_driver/page_generator_spec.rb
244
254
  - spec/selenium_web_driver/page_object_spec.rb
245
255
  - spec/selenium_web_driver/page_validator_spec.rb
246
- - spec/selenium_web_driver/property_page.rb
247
256
  - spec/spec_helper.rb
257
+ - spec/test_page/test_page.html
258
+ - spec/test_page/test_page.rb
259
+ - spec/test_page/test_page_custom_generator_configuration.rb
260
+ - spec/test_page/test_page_rc.rb
248
261
  homepage: https://github.com/scottcsims/SeleniumFury
249
262
  licenses: []
250
-
251
263
  post_install_message:
252
264
  rdoc_options: []
253
-
254
- require_paths:
265
+ require_paths:
255
266
  - lib
256
- required_ruby_version: !ruby/object:Gem::Requirement
267
+ required_ruby_version: !ruby/object:Gem::Requirement
257
268
  none: false
258
- requirements:
259
- - - ">="
260
- - !ruby/object:Gem::Version
261
- hash: 3
262
- segments:
269
+ requirements:
270
+ - - ! '>='
271
+ - !ruby/object:Gem::Version
272
+ version: '0'
273
+ segments:
263
274
  - 0
264
- version: "0"
265
- required_rubygems_version: !ruby/object:Gem::Requirement
275
+ hash: -3785913807508317413
276
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
277
  none: false
267
- requirements:
268
- - - ">="
269
- - !ruby/object:Gem::Version
270
- hash: 3
271
- segments:
272
- - 0
273
- version: "0"
278
+ requirements:
279
+ - - ! '>='
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
274
282
  requirements: []
275
-
276
283
  rubyforge_project:
277
284
  rubygems_version: 1.8.24
278
285
  signing_key:
279
286
  specification_version: 3
280
- summary: Selenium Fury allows an automated tester to quickly build page files to use in the page object pattern. Each page file represents a page under test with attributes of all the locators selenium needs to run tests on the page and methods that represent actions that can be performed on the page. You use the generator to build the page files. After the page has been updated you can use the validator to go through all of the selenium locators you are using in your page file and return a list of the locators that it could not find. If there are missing locators you can then rerun the generator to generate new selenium locators for your page. http://www.scottcsims.com
287
+ summary: Selenium Fury allows an automated tester to quickly build page files to use
288
+ in the page object pattern. Each page file represents a page under test with attributes
289
+ of all the locators selenium needs to run tests on the page and methods that represent
290
+ actions that can be performed on the page. You use the generator to build the page
291
+ files. After the page has been updated you can use the validator to go through all
292
+ of the selenium locators you are using in your page file and return a list of the
293
+ locators that it could not find. If there are missing locators you can then rerun
294
+ the generator to generate new selenium locators for your page. http://www.scottcsims.com
281
295
  test_files: []
282
-