selenium-cucumber 0.0.2 → 0.0.4

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.
Files changed (28) hide show
  1. data/doc/canned_steps.md +337 -76
  2. data/doc/installation.md +13 -13
  3. data/features-skeleton/my_first.feature +5 -5
  4. data/features-skeleton/step_definitions/custom_steps.rb +3 -3
  5. data/features-skeleton/support/env.rb +37 -29
  6. data/lib/selenium-cucumber.rb +8 -7
  7. data/lib/selenium-cucumber/assertion_steps.rb +436 -57
  8. data/lib/selenium-cucumber/configuration_steps.rb +7 -0
  9. data/lib/selenium-cucumber/input_steps.rb +322 -0
  10. data/lib/selenium-cucumber/javascript_handling_steps.rb +9 -0
  11. data/lib/selenium-cucumber/methods/assertion_methods.rb +165 -34
  12. data/lib/selenium-cucumber/methods/configuration_methods.rb +9 -0
  13. data/lib/selenium-cucumber/methods/input_methods.rb +87 -0
  14. data/lib/selenium-cucumber/methods/javascript_handling_methods.rb +6 -0
  15. data/lib/selenium-cucumber/methods/navigate_methods.rb +75 -11
  16. data/lib/selenium-cucumber/methods/press_button_methods.rb +6 -6
  17. data/lib/selenium-cucumber/methods/progress_methods.rb +15 -6
  18. data/lib/selenium-cucumber/methods/screenshot_methods.rb +7 -0
  19. data/lib/selenium-cucumber/navigation_steps.rb +104 -9
  20. data/lib/selenium-cucumber/press_button_steps.rb +37 -13
  21. data/lib/selenium-cucumber/progress_steps.rb +58 -0
  22. data/lib/selenium-cucumber/screenshot_steps.rb +5 -0
  23. data/lib/selenium-cucumber/version.rb +1 -1
  24. metadata +19 -11
  25. data/lib/selenium-cucumber/enter_text_steps.rb +0 -27
  26. data/lib/selenium-cucumber/methods/enter_text_methods.rb +0 -14
  27. data/lib/selenium-cucumber/progress_step.rb +0 -17
  28. data/lib/selenium-cucumber/screenshot_step.rb +0 -8
@@ -0,0 +1,7 @@
1
+ require_relative 'methods/configuration_methods'
2
+
3
+ # Step to print configuration
4
+
5
+ Then(/^I print configuration$/) do
6
+ print_congifugartion
7
+ end
@@ -0,0 +1,322 @@
1
+ require_relative 'methods/input_methods'
2
+
3
+ #enter text into input field steps
4
+
5
+ #By ID
6
+ Then(/^I enter "([^\"]*)" into input field having id "([^\"]*)"$/) do |text, access_name|
7
+ enter_text("id",text,access_name)
8
+ end
9
+
10
+ #By NAME
11
+ Then(/^I enter "([^\"]*)" into input field having name "([^\"]*)"$/) do |text, access_name|
12
+ enter_text("name",text,access_name)
13
+ end
14
+
15
+ #By CLASS
16
+ Then(/^I enter "([^\"]*)" into input field having class "([^\"]*)"$/) do |text, access_name|
17
+ enter_text("class",text,access_name)
18
+ end
19
+
20
+ #By XPATH
21
+ Then(/^I enter "([^\"]*)" into input field having xpath "([^\"]*)"$/) do |text, access_name|
22
+ enter_text("xpath",text,access_name)
23
+ end
24
+
25
+ #By CSS
26
+ Then(/^I enter "([^\"]*)" into input field having css "([^\"]*)"$/) do |text, access_name|
27
+ enter_text("css",text,access_name)
28
+ end
29
+
30
+ #clear input field steps
31
+
32
+ #By ID
33
+ Then(/^I clear input field having id "([^\"]*)"$/) do |access_name|
34
+ clear_text("id",access_name)
35
+ end
36
+
37
+ #By NAME
38
+ Then(/^I clear input field having name "([^\"]*)"$/) do |access_name|
39
+ clear_text("name",access_name)
40
+ end
41
+
42
+ #By CLASS
43
+ Then(/^I clear input field having class "([^\"]*)"$/) do |access_name|
44
+ clear_text("class",access_name)
45
+ end
46
+
47
+ #By XPATH
48
+ Then(/^I clear input field having xpath "([^\"]*)"$/) do |access_name|
49
+ clear_text("xpath",access_name)
50
+ end
51
+
52
+ #By CSS
53
+ Then(/^I clear input field having css "([^\"]*)"$/) do |access_name|
54
+ clear_text("css",access_name)
55
+ end
56
+
57
+
58
+ #select option by text from Drop down list
59
+ #By TEXT
60
+ #By ID
61
+ Then(/^I select "(.*?)" option by text from dropdown having id "(.*?)"$/) do |option, access_name|
62
+ select_option_from_dropdown("id","text",option,access_name)
63
+ end
64
+
65
+ #By NAME
66
+ Then(/^I select "(.*?)" option by text from dropdown having name "(.*?)"$/) do |option, access_name|
67
+ select_option_from_dropdown("name","text",option,access_name)
68
+ end
69
+
70
+ #By CLASS
71
+ Then(/^I select "(.*?)" option by text from dropdown having class "(.*?)"$/) do |option, access_name|
72
+ select_option_from_dropdown("class","text",option,access_name)
73
+ end
74
+
75
+ #By XPATH
76
+ Then(/^I select "(.*?)" option by text from dropdown having xpath "(.*?)"$/) do |option, access_name|
77
+ select_option_from_dropdown("xpath","text",option,access_name)
78
+ end
79
+
80
+ #By CSS
81
+ Then(/^I select "(.*?)" option by text from dropdown having css "(.*?)"$/) do |option, access_name|
82
+ select_option_from_dropdown("css","text",option,access_name)
83
+ end
84
+
85
+ #select option by index from Drop down list
86
+ #By INDEX
87
+ #By ID
88
+ Then(/^I select (\d+) option by index from dropdown having id "(.*?)"$/) do |option, access_name|
89
+ select_option_from_dropdown("id","index",option,access_name)
90
+ end
91
+
92
+ #By NAME
93
+ Then(/^I select (\d+) option by index from dropdown having name "(.*?)"$/) do |option, access_name|
94
+ select_option_from_dropdown("name","index",option,access_name)
95
+ end
96
+
97
+ #By CLASS
98
+ Then(/^I select (\d+) option by index from dropdown having class "(.*?)"$/) do |option, access_name|
99
+ select_option_from_dropdown("class","index",option,access_name)
100
+ end
101
+
102
+ #By XPATH
103
+ Then(/^I select (\d+) option by index from dropdown having xpath "(.*?)"$/) do |option, access_name|
104
+ select_option_from_dropdown("xpath","index",option,access_name)
105
+ end
106
+
107
+ #By CSS
108
+ Then(/^I select (\d+) option by index from dropdown having css "(.*?)"$/) do |option, access_name|
109
+ select_option_from_dropdown("css","index",option,access_name)
110
+ end
111
+
112
+ #select option by value from Drop down list
113
+ #By VALUE
114
+ #By ID
115
+ Then(/^I select "(.*?)" option by value from dropdown having id "(.*?)"$/) do |option, access_name|
116
+ select_option_from_dropdown("id","value",option,access_name)
117
+ end
118
+
119
+ #By NAME
120
+ Then(/^I select "(.*?)" option by value from dropdown having name "(.*?)"$/) do |option, access_name|
121
+ select_option_from_dropdown("name","value",option,access_name)
122
+ end
123
+
124
+ #By CLASS
125
+ Then(/^I select "(.*?)" option by value from dropdown having class "(.*?)"$/) do |option, access_name|
126
+ select_option_from_dropdown("class","value",option,access_name)
127
+ end
128
+
129
+ #By XPATH
130
+ Then(/^I select "(.*?)" option by value from dropdown having xpath "(.*?)"$/) do |option, access_name|
131
+ select_option_from_dropdown("xpath","value",option,access_name)
132
+ end
133
+
134
+ #By CSS
135
+ Then(/^I select "(.*?)" option by value from dropdown having css "(.*?)"$/) do |option, access_name|
136
+ select_option_from_dropdown("css","value",option,access_name)
137
+ end
138
+
139
+
140
+ #unselect option from dropdown list
141
+
142
+ #By ID
143
+ Then(/^I unselect options from dropdown having id "(.*?)"$/) do |access_name|
144
+ unselect_option_from_dropdown("id", access_name)
145
+ end
146
+
147
+ #By NAME
148
+ Then(/^I unselect options from dropdown having name "(.*?)"$/) do |access_name|
149
+ unselect_option_from_dropdown("name", access_name)
150
+ end
151
+
152
+ #By CLASS
153
+ Then(/^I unselect options from dropdown having class "(.*?)"$/) do |access_name|
154
+ unselect_option_from_dropdown("class", access_name)
155
+ end
156
+
157
+ #By XPATH
158
+ Then(/^I unselect options from dropdown having xpath "(.*?)"$/) do |access_name|
159
+ unselect_option_from_dropdown("xpath", access_name)
160
+ end
161
+
162
+ #By CSS
163
+ Then(/^I unselect options from dropdown having css "(.*?)"$/) do |access_name|
164
+ unselect_option_from_dropdown("css", access_name)
165
+ end
166
+
167
+ #check checkbox steps
168
+ #By ID
169
+ Then(/^I check checkbox having id "(.*?)"$/) do |access_name|
170
+ check_checkbox("id",access_name)
171
+ end
172
+
173
+ #By NAME
174
+ Then(/^I check checkbox having name "(.*?)"$/) do |access_name|
175
+ check_checkbox("name",access_name)
176
+ end
177
+
178
+ #By CLASS
179
+ Then(/^I check checkbox having class "(.*?)"$/) do |access_name|
180
+ check_checkbox("class",access_name)
181
+ end
182
+
183
+ #By XPATH
184
+ Then(/^I check checkbox having xpath "(.*?)"$/) do |access_name|
185
+ check_checkbox("xpath",access_name)
186
+ end
187
+
188
+ #By CSS
189
+ Then(/^I check checkbox having css "(.*?)"$/) do |access_name|
190
+ check_checkbox("css",access_name)
191
+ end
192
+
193
+ #uncheck checkbox steps
194
+ #By ID
195
+ Then(/^I uncheck checkbox having id "(.*?)"$/) do |access_name|
196
+ uncheck_checkbox("id",access_name)
197
+ end
198
+
199
+ #By NAME
200
+ Then(/^I uncheck checkbox having name "(.*?)"$/) do |access_name|
201
+ uncheck_checkbox("name",access_name)
202
+ end
203
+
204
+ #By CLASS
205
+ Then(/^I uncheck checkbox having class "(.*?)"$/) do |access_name|
206
+ uncheck_checkbox("class",access_name)
207
+ end
208
+
209
+ #By XPATH
210
+ Then(/^I uncheck checkbox having xpath "(.*?)"$/) do |access_name|
211
+ uncheck_checkbox("xpath",access_name)
212
+ end
213
+
214
+ #By CSS
215
+ Then(/^I uncheck checkbox having css "(.*?)"$/) do |access_name|
216
+ uncheck_checkbox("css",access_name)
217
+ end
218
+
219
+ #Steps to toggle checkbox
220
+ #By ID
221
+ Then(/^toggle checkbox having id "(.*?)"$/) do |access_name|
222
+ toggle_checkbox("id",access_name)
223
+ end
224
+
225
+ #By NAME
226
+ Then(/^toggle checkbox having name "(.*?)"$/) do |access_name|
227
+ toggle_checkbox("name",access_name)
228
+ end
229
+
230
+ #By CLASS
231
+ Then(/^toggle checkbox having class "(.*?)"$/) do |access_name|
232
+ toggle_checkbox("class",access_name)
233
+ end
234
+
235
+ #By XPATH
236
+ Then(/^toggle checkbox having xpath "(.*?)"$/) do |access_name|
237
+ toggle_checkbox("xpath",access_name)
238
+ end
239
+
240
+ #By CSS
241
+ Then(/^toggle checkbox having css "(.*?)"$/) do |access_name|
242
+ toggle_checkbox("css",access_name)
243
+ end
244
+
245
+ #radio button select steps
246
+ #By ID
247
+ Then(/^I select radio button having id "(.*?)"$/) do |access_name|
248
+ select_radio_button("id",access_name)
249
+ end
250
+
251
+ #By NAME
252
+ Then(/^I select radio button having name "(.*?)"$/) do |access_name|
253
+ select_radio_button("name",access_name)
254
+ end
255
+
256
+ #By CLASS
257
+ Then(/^I select radio button having class "(.*?)"$/) do |access_name|
258
+ select_radio_button("class",access_name)
259
+ end
260
+
261
+ #By XPATH
262
+ Then(/^I select radio button having xpath "(.*?)"$/) do |access_name|
263
+ select_radio_button("xpath",access_name)
264
+ end
265
+
266
+ #By CSS
267
+ Then(/^I select radio button having css "(.*?)"$/) do |access_name|
268
+ select_radio_button("css",access_name)
269
+ end
270
+
271
+
272
+ #steps to select option by text from radio button group
273
+ #By ID
274
+ Then(/^I select "(.*?)" option by text from radio button group having id "(.*?)"$/) do |option, access_name|
275
+ select_option_from_radio_button_group("id","text",option,access_name)
276
+ end
277
+
278
+ #By NAME
279
+ Then(/^I select "(.*?)" option by text from radio button group having name "(.*?)"$/) do |option, access_name|
280
+ select_option_from_radio_button_group("name","text",option,access_name)
281
+ end
282
+
283
+ #By CLASS
284
+ Then(/^I select "(.*?)" option by text from radio button group having class "(.*?)"$/) do |option, access_name|
285
+ select_option_from_radio_button_group("class","text",option,access_name)
286
+ end
287
+
288
+ #By XPATH
289
+ Then(/^I select "(.*?)" option by text from radio button group having xpath "(.*?)"$/) do |option, access_name|
290
+ select_option_from_radio_button_group("xpath","text",option,access_name)
291
+ end
292
+
293
+ #By CSS
294
+ Then(/^I select "(.*?)" option by text from radio button group having css "(.*?)"$/) do |option, access_name|
295
+ select_option_from_radio_button_group("css","text",option,access_name)
296
+ end
297
+
298
+ #steps to select option by value from radio button group
299
+ #By ID
300
+ Then(/^I select "(.*?)" option by value from radio button group having id "(.*?)"$/) do |option, access_name|
301
+ select_option_from_radio_button_group("id","value",option,access_name)
302
+ end
303
+
304
+ #By NAME
305
+ Then(/^I select "(.*?)" option by value from radio button group having name "(.*?)"$/) do |option, access_name|
306
+ select_option_from_radio_button_group("name","value",option,access_name)
307
+ end
308
+
309
+ #By CLASS
310
+ Then(/^I select "(.*?)" option by value from radio button group having class "(.*?)"$/) do |option, access_name|
311
+ select_option_from_radio_button_group("class","value",option,access_name)
312
+ end
313
+
314
+ #By XPATH
315
+ Then(/^I select "(.*?)" option by value from radio button group having xpath "(.*?)"$/) do |option, access_name|
316
+ select_option_from_radio_button_group("xpath","value",option,access_name)
317
+ end
318
+
319
+ #By CSS
320
+ Then(/^I select "(.*?)" option by value from radio button group having css "(.*?)"$/) do |option, access_name|
321
+ select_option_from_radio_button_group("css","value",option,access_name)
322
+ end
@@ -0,0 +1,9 @@
1
+ require_relative 'methods/javascript_handling_steps'
2
+
3
+ Then(/^I accept alert$/) do
4
+ handle_alert("accept")
5
+ end
6
+
7
+ Then(/^I dismiss alert$/) do
8
+ handle_alert("dismiss")
9
+ end
@@ -1,35 +1,166 @@
1
- require 'rubygems'
2
- require "selenium-webdriver"
3
-
4
- #Page title checking
5
- def check_title(title)
6
- if($driver.title!=title)
7
- raise "Page Title Not Matched"
8
- end
9
- end
10
-
11
- #Element Value checking
12
- def check_element_value(access_type, actual_value, access_name, test_case)
13
- if test_case
14
- if($driver.find_element(:"#{access_type}" => "#{access_name}").attribute("value")!=actual_value)
15
- raise "Value Not Matched"
16
- end
17
- else
18
- if($driver.find_element(:"#{access_type}" => "#{access_name}").attribute("value")==actual_value)
19
- raise "Value Matched"
20
- end
21
- end
22
- end
23
-
24
- #Element enabled checking
25
- def check_element_enable(access_type, access_name, test_case)
26
- if test_case
27
- if(!$driver.find_element(:"#{access_type}" => "#{access_name}").enabled?)
28
- raise "Element not enabled"
29
- end
30
- else
31
- if($driver.find_element(:"#{access_type}" => "#{access_name}").enabled?)
32
- raise "Element enabled"
33
- end
34
- end
1
+ require 'rubygems'
2
+ require "selenium-webdriver"
3
+
4
+ #Page title checking
5
+ def check_title(title)
6
+ if($driver.title!=title)
7
+ raise "Page Title Not Matched"
8
+ end
9
+ end
10
+
11
+ #Method to check element text
12
+ def check_element_text(access_type, actual_value, access_name, test_case)
13
+ puts $driver.find_element(:"#{access_type}" => "#{access_name}").text
14
+
15
+ if test_case
16
+ if($driver.find_element(:"#{access_type}" => "#{access_name}").text!=actual_value)
17
+ raise "Text Not Matched"
18
+ end
19
+ else
20
+ if($driver.find_element(:"#{access_type}" => "#{access_name}").text==actual_value)
21
+ raise "Text Matched"
22
+ end
23
+ end
24
+ end
25
+
26
+ #Element enabled checking
27
+ def check_element_enable(access_type, access_name, test_case)
28
+ if test_case
29
+ if(!$driver.find_element(:"#{access_type}" => "#{access_name}").enabled?)
30
+ raise "Element not enabled"
31
+ end
32
+ else
33
+ if($driver.find_element(:"#{access_type}" => "#{access_name}").enabled?)
34
+ raise "Element enabled"
35
+ end
36
+ end
37
+ end
38
+
39
+ # method to check attribute value
40
+ def check_element_attribute(access_type, attribute_name , attribute_value, access_name, test_case)
41
+ puts $driver.find_element(:"#{access_type}" => "#{access_name}").attribute("#{attribute_name}")
42
+ if test_case
43
+ if($driver.find_element(:"#{access_type}" => "#{access_name}").attribute("#{attribute_name}")!=attribute_value)
44
+ raise "Attribute Not Matched"
45
+ end
46
+ else
47
+ if($driver.find_element(:"#{access_type}" => "#{access_name}").attribute("#{attribute_name}")==attribute_value)
48
+ raise "Attribute Matched"
49
+ end
50
+ end
51
+ end
52
+
53
+ # method to check element presence
54
+ def check_element_presence(access_type, access_name, test_case)
55
+ if test_case
56
+ if !$driver.find_element(:"#{access_type}" => "#{access_name}").displayed?
57
+ raise "Excpetion : Element Not Present"
58
+ else
59
+ puts $driver.find_element(:"#{access_type}" => "#{access_name}").text
60
+ end
61
+ else
62
+ begin
63
+ puts $driver.find_element(:"#{access_type}" => "#{access_name}").text
64
+ raise "present"
65
+ rescue Exception => e
66
+ if e.message=="present"
67
+ raise "Exception : Element Present"
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ #method to assert checkbox check
74
+ def is_checkbox_checked(access_type, access_name)
75
+ checkbox = $driver.find_element(:"#{access_type}" => "#{access_name}")
76
+
77
+ if !checkbox.selected?
78
+ raise "Checkbox not checked"
79
+ end
80
+ end
81
+
82
+ #method to assert checkbox uncheck
83
+ def is_checkbox_unchecked(access_type, access_name)
84
+ checkbox = $driver.find_element(:"#{access_type}" => "#{access_name}")
85
+
86
+ if checkbox.selected?
87
+ raise "Checkbox checked"
88
+ end
89
+ end
90
+
91
+ #method to assert checkbox check
92
+ def is_radio_button_selected(access_type, access_name)
93
+ radio_button = $driver.find_element(:"#{access_type}" => "#{access_name}")
94
+
95
+ if !radio_button.selected?
96
+ raise "Radio button is not selected"
97
+ end
98
+ end
99
+
100
+ #method to assert checkbox uncheck
101
+ def is_radio_button_unselected(access_type, access_name)
102
+ radio_button = $driver.find_element(:"#{access_type}" => "#{access_name}")
103
+
104
+ if radio_button.selected?
105
+ raise "Radio button is not selected"
106
+ end
107
+ end
108
+
109
+
110
+ #method to assert option from radio button group is selected
111
+ def is_option_from_radio_button_group_selected(access_type, by, option, access_name)
112
+ radio_button_group = $driver.find_elements(:"#{access_type}" => "#{access_name}")
113
+
114
+ i=0
115
+
116
+ if by=="value"
117
+ while i<radio_button_group.length
118
+ if radio_button_group[i].attribute("value")==option
119
+ if !radio_button_group[i].selected?
120
+ raise "Radio button is not selected"
121
+ end
122
+ break
123
+ end
124
+ i=i+1
125
+ end
126
+ else
127
+ while i<radio_button_group.length
128
+ if radio_button_group[i].text==option
129
+ if !radio_button_group[i].selected?
130
+ raise "Radio button is not selected"
131
+ end
132
+ break
133
+ end
134
+ i=i+1
135
+ end
136
+ end
137
+ end
138
+
139
+ #method to assert option from radio button group is not selected
140
+ def is_option_from_radio_button_group_not_selected(access_type, by, option, access_name)
141
+ radio_button_group = $driver.find_elements(:"#{access_type}" => "#{access_name}")
142
+
143
+ i=0
144
+
145
+ if by=="value"
146
+ while i<radio_button_group.length
147
+ if radio_button_group[i].attribute("value")==option
148
+ if radio_button_group[i].selected?
149
+ raise "Radio button is selected"
150
+ end
151
+ break
152
+ end
153
+ i=i+1
154
+ end
155
+ else
156
+ while i<radio_button_group.length
157
+ if radio_button_group[i].text==option
158
+ if radio_button_group[i].selected?
159
+ raise "Radio button is selected"
160
+ end
161
+ break
162
+ end
163
+ i=i+1
164
+ end
165
+ end
35
166
  end