watir_helper 0.1.2

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/README ADDED
@@ -0,0 +1,170 @@
1
+ About this Utility:
2
+
3
+ This is a utility(watir_helper) developed for making Automation Testing faster, simpler and easier through WATIR.
4
+
5
+ Features:-
6
+
7
+ 1. No need to create an IE Instance.
8
+
9
+ 2. Just include this gem and use it's parameterized functions some of which are given as follows:-
10
+
11
+ # goto_page("http://www.google.com")
12
+
13
+ # set_texfield("name","q","Ruby")
14
+
15
+ # click_button("name","btnG")
16
+
17
+ # verify_text("Ruby")
18
+
19
+ # close_browser()
20
+
21
+ Due to this feature Automation Testing task will be easier and faster because we have to just use the functions of this gem.
22
+
23
+ 3. All the functions are available in the lib/watir_helper folder for different type of elements of a website.
24
+
25
+ 4. Pop-up handling is easy using given parameterized functions in this gem.
26
+
27
+ 5. To enable the Pop-up handling, execute the following steps on your command prompt :-
28
+
29
+ - cd C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir
30
+
31
+ - regsvr32 AutoItX3.dll
32
+
33
+ - You will get a pop-up of successful registration , press "OK" button on it.
34
+
35
+ Now, You can easily handle pop-up's.
36
+
37
+ 6. Can add functions into this gem as WATIR is an Open Source tool.
38
+
39
+
40
+ Prerequisites:
41
+
42
+ Install Ruby: http://ruby-lang.org
43
+
44
+ First you need to install Ruby using the one-click installer for Windows. We
45
+ recommend Ruby 1.8.6. (Even if you are using modal dialogs.)
46
+
47
+
48
+
49
+ Install Watir:
50
+
51
+ Watir is packaged as a gem, a Ruby library that can be installed over the
52
+ internet.
53
+
54
+
55
+
56
+ Note:
57
+
58
+ The latest version of Watir is 1.6.5 whose close function doesn't work fine if we handle pop-up's in our scripts.But close function of Watir 1.6.2 works fine with pop-up handling.Watir 1.6.2 was released in November 2009.
59
+
60
+ To install it, type this at command prompt:
61
+
62
+ gem install watir (for latest version)
63
+ gem install watir
64
+
65
+ -v 1.6.2 (for version 1.6.2)
66
+
67
+ Install rspec:
68
+
69
+ gem install rspec (This will download the latest version)
70
+
71
+ gem install rspec -v 1.1.3 (This version is also needed because of some compatibility issue)
72
+
73
+
74
+
75
+ Install rake:
76
+
77
+ gem install rake
78
+
79
+
80
+
81
+ Install IE Devleoper Toolbar from the site
82
+
83
+ http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en
84
+
85
+ How
86
+ To Use:
87
+ This only works on Windows.Requires Internet Explorer 5.5 or newer.
88
+ Typical Usage
89
+
90
+ # include my utility(watir_helper)
91
+
92
+ require 'watir_helper'
93
+
94
+ # include the module inside it
95
+
96
+ include WatirHelper
97
+
98
+ # Go to the Google home page
99
+
100
+ goto_page("http://www.google.com/")
101
+
102
+ # print Title
103
+
104
+ puts get_title
105
+
106
+ # print Url
107
+
108
+ puts get_url
109
+
110
+ # Flash the Google logo on the home page
111
+
112
+ flash_image("id","logo")
113
+
114
+ # Check whether Google logo image exists or not
115
+
116
+ puts exists_image("id","logo")
117
+
118
+ # Set the search field to Ruby
119
+
120
+ set_textfield("name","q","Ruby")
121
+
122
+ # Highlight the Google Search button
123
+
124
+ flash_button("value","Google Search")
125
+
126
+ # Click the Google Search button
127
+
128
+ click_button("value","Google Search")
129
+
130
+
131
+
132
+
133
+ Pop Up's Support
134
+ :-
135
+ Watir now optionally installs AutoIt - http://www.autoitscript.com/
136
+
137
+ This is the prefered method for dealing wth pop ups, file requesters etc.
138
+
139
+ To enable the same, execute the following steps on your command prompt :-
140
+
141
+ - cd C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir
142
+
143
+ - regsvr32 AutoItX3.dll
144
+
145
+ - You will get a pop-up of successful registration , press "OK" button on it.
146
+
147
+ Now,You can easily handle pop-up's.
148
+
149
+
150
+
151
+ Note: The latest version of Watir is 1.6.5 whose close function doesn't work fine if we handle pop-up's in our scripts.But close function of Watir 1.6.2 works fine with pop-up handling.
152
+
153
+
154
+
155
+ Contacts:
156
+
157
+ The mailing list: http://groups.google.com/group/watir-general
158
+
159
+ E-mail :- ankurgera@gmail.com
160
+
161
+
162
+ yashasree.barve@gmail.com
163
+
164
+ Contributors:
165
+ Ankur Gera
166
+
167
+ Yashasree Barve
168
+
169
+ Thanks for your ideas and support
170
+ .
@@ -0,0 +1,62 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module BrowserHelper
4
+
5
+ #Go to a page.
6
+ def goto_page(url)
7
+ $ie.goto(url)
8
+ end
9
+
10
+ #Go to the next page.
11
+ def goto_next_page()
12
+ $ie.forward
13
+ end
14
+
15
+ #Go to the previous page.
16
+ def goto_previous_page()
17
+ $ie.back
18
+ end
19
+
20
+ #Refresh the page.
21
+ def refresh_the_page()
22
+ $ie.refresh
23
+ end
24
+
25
+ #Close the browser.
26
+ def close_browser()
27
+ title=get_title()
28
+ $ai.WinKill(title)
29
+ end
30
+
31
+ #Get the title of the browser.
32
+ def get_title()
33
+ $ie.title
34
+ end
35
+
36
+ #Get the url of the browser.
37
+ def get_url()
38
+ $ie.url
39
+ end
40
+
41
+ #Attach an IE instance.
42
+ def attach_an_IE_window(property,propertyvalue)
43
+ propertyvalue=/#{propertyvalue}/
44
+ $ie=Watir::IE.attach(property.intern,propertyvalue)
45
+ end
46
+
47
+ #Minimize the browser.
48
+ def minimize_browser()
49
+ $ie.minimize
50
+ end
51
+
52
+ #Maximize the browser.
53
+ def maximize_browser()
54
+ $ie.maximize
55
+ end
56
+
57
+ #Verify whether text is present or not.
58
+ def verify_text(text)
59
+ $ie.text.include?(text)
60
+ end
61
+
62
+ end
@@ -0,0 +1,42 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module ButtonHelper
4
+
5
+ #Click a button.
6
+ def click_button(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.button(property.intern,propertyvalue).click
9
+ end
10
+
11
+ #Click a button ,after clicking which a pop-up will come.
12
+ def click_button_with_popup(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.button(property.intern,propertyvalue).click_no_wait
15
+ end
16
+
17
+ #Double Click a button.
18
+ def double_click_button(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.button(property.intern,propertyvalue).fire_event("ondblclick")
21
+ end
22
+
23
+ #Double Click a button ,after clicking which a pop-up will come.
24
+ def double_click_button_with_popup(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.button(property.intern,propertyvalue).fire_event_no_wait("ondblclick")
27
+ end
28
+
29
+ #Highlight or Flash a button.
30
+ def flash_button(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.button(property.intern,propertyvalue).flash
33
+ end
34
+
35
+ #Check whether a button exists or not.
36
+ def exists_button(property,propertyvalue)
37
+ propertyvalue=/#{propertyvalue}/
38
+ $ie.button(property.intern,propertyvalue).exists?
39
+ end
40
+
41
+ end
42
+
@@ -0,0 +1,35 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module CheckBoxHelper
4
+
5
+ #Click a checkbox.
6
+ def click_checkbox(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.checkbox(property.intern,propertyvalue).set
9
+ end
10
+
11
+ #Clear a checkbox.
12
+ def clear_checkbox(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.checkbox(property.intern,propertyvalue).clear
15
+ end
16
+
17
+ #Highlight or Flash a checkbox.
18
+ def flash_checkbox(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.checkbox(property.intern,propertyvalue).flash
21
+ end
22
+
23
+ #Check whether a checkbox exists or not.
24
+ def exists_checkbox(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.checkbox(property.intern,propertyvalue).exists?
27
+ end
28
+
29
+ #Check whether a checkbox is checked/set or not.
30
+ def is_checked_checkbox(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.checkbox(property.intern,propertyvalue).checked?
33
+ end
34
+
35
+ end
@@ -0,0 +1,9 @@
1
+ require 'watir'
2
+ require 'rubygems'
3
+
4
+
5
+ #Create a new instance of IE.
6
+ $ie=Watir::IE.new
7
+ #Initialize variable "settext" with the value nil.
8
+ $settext=nil
9
+
@@ -0,0 +1,41 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module DivHelper
4
+
5
+ #Click a div.
6
+ def click_div(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.div(property.intern,propertyvalue).click
9
+ end
10
+
11
+ #Click a div, after clicking which a pop-up will come.
12
+ def click_div_with_popup(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.div(property.intern,propertyvalue).click_no_wait
15
+ end
16
+
17
+ #Double Click a div.
18
+ def double_click_div(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.div(property.intern,propertyvalue).fire_event("ondblclick")
21
+ end
22
+
23
+ #Double Click a div, after clicking which a pop-up will come.
24
+ def double_click_div_with_popup(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.div(property.intern,propertyvalue).fire_event_no_wait("ondblclick")
27
+ end
28
+
29
+ #Highlight or Flash a div.
30
+ def flash_div(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.div(property.intern,propertyvalue).flash
33
+ end
34
+
35
+ #Check whether a div exists or not.
36
+ def exists_div(property,propertyvalue)
37
+ propertyvalue=/#{propertyvalue}/
38
+ $ie.div(property.intern,propertyvalue).exists?
39
+ end
40
+
41
+ end
@@ -0,0 +1,92 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module FrameHelper
4
+
5
+ #Click a link inside a frame.
6
+ def click_link_inside_frame(frame_prop,frame_prop_val,link_prop,link_prop_val)
7
+ frame_prop_val=/#{frame_prop_val}/
8
+ link_prop_val=/#{link_prop_val}/
9
+ $ie.frame(frame_prop.intern,frame_prop_val).link(link_prop.intern,link_prop_val).click
10
+ end
11
+
12
+ #Click a button inside a frame.
13
+ def click_button_inside_frame(frame_prop,frame_prop_val,button_prop,button_prop_val)
14
+ frame_prop_val=/#{frame_prop_val}/
15
+ button_prop_val=/#{button_prop_val}/
16
+ $ie.frame(frame_prop.intern,frame_prop_val).button(button_prop.intern,button_prop_val).click
17
+ end
18
+
19
+ #Click an image inside a frame.
20
+ def click_image_inside_frame(frame_prop,frame_prop_val,image_prop,image_prop_val)
21
+ frame_prop_val=/#{frame_prop_val}/
22
+ image_prop_val=/#{image_prop_val}/
23
+ $ie.frame(frame_prop.intern,frame_prop_val).image(image_prop.intern,image_prop_val).click
24
+ end
25
+
26
+ #Click a checkbox inside a frame.
27
+ def click_checkbox_inside_frame(frame_prop,frame_prop_val,checkbox_prop,checkbox_prop_val)
28
+ frame_prop_val=/#{frame_prop_val}/
29
+ checkbox_prop_val=/#{checkbox_prop_val}/
30
+ $ie.frame(frame_prop.intern,frame_prop_val).checkbox(checkbox_prop.intern,checkbox_prop_val).click
31
+ end
32
+
33
+ #Click a radio button inside a frame.
34
+ def click_radio_button_inside_frame(frame_prop,frame_prop_val,radio_prop,radio_prop_val)
35
+ frame_prop_val=/#{frame_prop_val}/
36
+ radio_prop_val=/#{radio_prop_val}/
37
+ $ie.frame(frame_prop.intern,frame_prop_val).radio(radio_prop.intern,radio_prop_val).click
38
+ end
39
+
40
+ #Select from a select list inside a frame.
41
+ def select_from_select_list_inside_frame(frame_prop,frame_prop_val,select_list_prop,select_list_prop_val,select_value)
42
+ frame_prop_val=/#{frame_prop_val}/
43
+ select_list_prop_val=/#{select_list_prop_val}/
44
+ $ie.frame(frame_prop.intern,frame_prop_val).select_list(select_list_prop.intern,select_list_prop_val).select(select_value)
45
+ end
46
+
47
+ #Highlight or Flash a link inside a frame.
48
+ def flash_link_inside_frame(frame_prop,frame_prop_val,link_prop,link_prop_val)
49
+ frame_prop_val=/#{frame_prop_val}/
50
+ link_prop_val=/#{link_prop_val}/
51
+ $ie.frame(frame_prop.intern,frame_prop_val).link(link_prop.intern,link_prop_val).flash
52
+ end
53
+
54
+ #Highlight or Flash a button inside a frame.
55
+ def flash_button_inside_frame(frame_prop,frame_prop_val,button_prop,button_prop_val)
56
+ frame_prop_val=/#{frame_prop_val}/
57
+ button_prop_val=/#{button_prop_val}/
58
+ $ie.frame(frame_prop.intern,frame_prop_val).button(button_prop.intern,button_prop_val).flash
59
+ end
60
+
61
+ #Highlight or Flash an image inside a frame.
62
+ def flash_image_inside_frame(frame_prop,frame_prop_val,image_prop,image_prop_val)
63
+ frame_prop_val=/#{frame_prop_val}/
64
+ image_prop_val=/#{image_prop_val}/
65
+ $ie.frame(frame_prop.intern,frame_prop_val).image(image_prop.intern,image_prop_val).flash
66
+ end
67
+
68
+ #Highlight or Flash a checkbox inside a frame.
69
+ def flash_checkbox_inside_frame(frame_prop,frame_prop_val,checkbox_prop,checkbox_prop_val)
70
+ frame_prop_val=/#{frame_prop_val}/
71
+ checkbox_prop_val=/#{checkbox_prop_val}/
72
+ $ie.frame(frame_prop.intern,frame_prop_val).checkbox(checkbox_prop.intern,checkbox_prop_val).flash
73
+ end
74
+
75
+ #Highlight or Flash a radio button inside a frame.
76
+ def flash_radio_button_inside_frame(frame_prop,frame_prop_val,radio_prop,radio_prop_val)
77
+ frame_prop_val=/#{frame_prop_val}/
78
+ radio_prop_val=/#{radio_prop_val}/
79
+ $ie.frame(frame_prop.intern,frame_prop_val).radio(radio_prop.intern,radio_prop_val).flash
80
+ end
81
+
82
+ #Highlight or Flash a select list inside a frame.
83
+ def flash_select_list_inside_frame(frame_prop,frame_prop_val,select_list_prop,select_list_prop_val)
84
+ frame_prop_val=/#{frame_prop_val}/
85
+ select_list_prop_val=/#{select_list_prop_val}/
86
+ $ie.frame(frame_prop.intern,frame_prop_val).select_list(select_list_prop.intern,select_list_prop_val).flash
87
+ end
88
+
89
+ end
90
+
91
+
92
+
@@ -0,0 +1,41 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module ImageHelper
4
+
5
+ #Click an image.
6
+ def click_image(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.image(property.intern,propertyvalue).click
9
+ end
10
+
11
+ #Click an image ,after clicking which a pop-up will come.
12
+ def click_image_with_popup(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.image(property.intern,propertyvalue).click_no_wait
15
+ end
16
+
17
+ #Double Click an image.
18
+ def double_click_image(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.image(property.intern,propertyvalue).fire_event("ondblclick")
21
+ end
22
+
23
+ #Double Click an image ,after clicking which a pop-up will come.
24
+ def double_click_image_with_popup(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.image(property.intern,propertyvalue).fire_event_no_wait("ondblclick")
27
+ end
28
+
29
+ #Highlight or Flash an image.
30
+ def flash_image(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.image(property.intern,propertyvalue).flash
33
+ end
34
+
35
+ #Check whether an image exists or not.
36
+ def exists_image(property,propertyvalue)
37
+ propertyvalue=/#{propertyvalue}/
38
+ $ie.image(property.intern,propertyvalue).exists?
39
+ end
40
+
41
+ end
@@ -0,0 +1,51 @@
1
+ require 'watir_helper/button_helper'
2
+ include ButtonHelper
3
+ require 'watir_helper/checkbox_helper'
4
+ include CheckBoxHelper
5
+ require 'watir_helper/frame_helper'
6
+ include FrameHelper
7
+ require 'watir_helper/image_helper'
8
+ include ImageHelper
9
+ require 'watir_helper/link_helper'
10
+ include LinkHelper
11
+
12
+ #Pop Up's Support
13
+ # Watir now optionally installs AutoIt - http://www.autoitscript.com/
14
+ # This is the prefered method for dealing wth pop ups, file requesters etc.
15
+ # To enable the same, execute the following steps on your command prompt
16
+ # - cd C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir
17
+ # - regsvr32 AutoItX3.dll
18
+ # - You will get a pop-up of successful registration , press "OK" button on it.
19
+ # Now,You can easily handle pop-up's.
20
+ require 'watir_helper/popup_handling_helper'
21
+ include PopupHelper
22
+
23
+ require 'watir_helper/radio_button_helper'
24
+ include RadioButtonHelper
25
+ require 'watir_helper/select_list_helper'
26
+ include SelectListHelper
27
+ require 'watir_helper/textfield_helper'
28
+ include TextFieldHelper
29
+ require 'watir_helper/validations_helper'
30
+ include ValidationsHelper
31
+ require 'watir_helper/browser_helper'
32
+ include BrowserHelper
33
+ require 'watir_helper/login_helper'
34
+ include LoginHelper
35
+ require 'watir_helper/span_helper'
36
+ include SpanHelper
37
+ require 'watir_helper/table_helper'
38
+ include TableHelper
39
+ require 'watir_helper/div_helper'
40
+ include DivHelper
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
@@ -0,0 +1,29 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module LinkHelper
4
+
5
+ #Click a link.
6
+ def click_link(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.link(property.intern,propertyvalue).click
9
+ end
10
+
11
+ #Click a link ,after clicking which a pop-up will come.
12
+ def click_link_with_popup(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.link(property.intern,propertyvalue).click_no_wait
15
+ end
16
+
17
+ #Highlight or Flash a link.
18
+ def flash_link(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.link(property.intern,propertyvalue).flash
21
+ end
22
+
23
+ #Check whether a link exists or not.
24
+ def exists_link(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.link(property.intern,propertyvalue).exists?
27
+ end
28
+
29
+ end
@@ -0,0 +1,32 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module LoginHelper
4
+
5
+ #Login using button into an application.
6
+ def login_using_button(user_prop,user_prop_value,username,pass_prop,pass_prop_value,password,btn_prop,btn_prop_value)
7
+ btn_prop=/#{btn_prop}/
8
+ btn_prop_value=/#{btn_prop_value}/
9
+ $ie.text_field(user_prop.intern,user_prop_value).set(username)
10
+ $ie.text_field(pass_prop.intern,pass_prop_value).set(password)
11
+ $ie.button(btn_prop.intern,btn_prop_value).click
12
+ end
13
+
14
+ #Login using link into an application.
15
+ def login_using_link(user_prop,user_prop_value,username,pass_prop,pass_prop_value,password,link_prop,link_prop_value)
16
+ link_prop=/#{link_prop}/
17
+ link_prop_value=/#{link_prop_value}/
18
+ $ie.text_field(user_prop.intern,user_prop_value).set(username)
19
+ $ie.text_field(pass_prop.intern,pass_prop_value).set(password)
20
+ $ie.link(link_prop.intern,link_prop_value).click
21
+ end
22
+
23
+ #Login using image into an application.
24
+ def login_using_image(user_prop,user_prop_value,username,pass_prop,pass_prop_value,password,img_prop,img_prop_value)
25
+ img_prop=/#{img_prop}/
26
+ img_prop_value=/#{img_prop_value}/
27
+ $ie.text_field(user_prop.intern,user_prop_value).set(username)
28
+ $ie.text_field(pass_prop.intern,pass_prop_value).set(password)
29
+ $ie.image(img_prop.intern,img_prop_value).click
30
+ end
31
+
32
+ end
@@ -0,0 +1,102 @@
1
+ require 'win32ole'
2
+
3
+ #Pop Up's Support
4
+ # Watir now optionally installs AutoIt - http://www.autoitscript.com/
5
+ # This is the prefered method for dealing wth pop ups, file requesters etc.
6
+ # To enable the same, execute the following steps on your command prompt
7
+ # - cd C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir
8
+ # - regsvr32 AutoItX3.dll
9
+ # - You will get a pop-up of successful registration , press "OK" button on it.
10
+ # Now,You can easily handle pop-up's.
11
+
12
+ # Note:
13
+ # The latest version of Watir is 1.6.5 whose close function doesn't work fine if we
14
+ # handle pop-up's in our scripts.But close function of Watir 1.6.2 works fine with
15
+ # pop-up handling.
16
+
17
+ #Create an OLE connection for handling pop-up's.
18
+ $ai=WIN32OLE.new("AutoItX3.Control")
19
+
20
+ #******************************************************
21
+ #Pop-up handling methods
22
+ #******************************************************
23
+
24
+ module PopupHelper
25
+
26
+ #Javascript pop-up's.
27
+
28
+ #Click on a button on a pop-up.
29
+ def click_a_button_on_a_popup(title,click_element_id)
30
+ $ai.WinWait(title,"",30)
31
+ $ai.WinActivate(title)
32
+ $ai.ControlClick(title,"",click_element_id)
33
+ end
34
+
35
+ #Click on "OK" button on a javascript pop-up.
36
+ def click_ok_on_javascript_popup(title)
37
+ click_a_button_on_a_popup(title,"","OK")
38
+ end
39
+
40
+ #Click on "Cancel" button on a javascript pop-up.
41
+ def click_cancel_on_javascript_popup(title)
42
+ click_a_button_on_a_popup(title,"","Cancel")
43
+ end
44
+
45
+ #Click on "Yes" button on a javascript pop-up.
46
+ def click_yes_on_javascript_popup(title)
47
+ click_a_button_on_a_popup(title,"","&Yes")
48
+ end
49
+
50
+ #Click on "No" button on a javascript pop-up.
51
+ def click_no_on_javascript_popup(title)
52
+ click_a_button_on_a_popup(title,"","&No")
53
+ end
54
+
55
+ #File Dialogs
56
+ #Click on "Open" button on a file dialog pop-up.
57
+ def click_open_on_file_dialog_popup(title)
58
+ click_a_button_on_a_popup(title,"&Open")
59
+ end
60
+
61
+ #Click on "Save" button on a file dialog pop-up.
62
+ def click_save_on_file_dialog_popup(title)
63
+ click_a_button_on_a_popup(title,"&Save")
64
+ end
65
+
66
+ #Click on "Cancel" button on a file dialog pop-up.
67
+ def click_cancel_on_file_dialog_popup(title)
68
+ click_a_button_on_a_popup(title,"Cancel")
69
+ end
70
+
71
+ #Save As
72
+ #Click on a button on a Save As or Open pop-up.
73
+ def click_a_button_on_save_or_open_popup(title,file_path,click_element_id)
74
+ $ai.WinWait(title,"",30)
75
+ $ai.WinActivate(title)
76
+ $ai.ControlSend(title,"","Edit1",file_path)
77
+ $ai.ControlClick(title,"",click_element_id)
78
+ end
79
+
80
+ #Click on "Save" button on a Save As pop-up.
81
+ def click_save_on_save_as_popup(title,save_file_path)
82
+ click_a_button_on_save_or_open_popup(title,save_file_path,"&Save")
83
+ end
84
+
85
+ #Click on "Cancel" button on a Save As pop-up.
86
+ def click_cancel_on_save_as_popup(title,save_file_path)
87
+ click_a_button_on_save_or_open_popup(title,save_file_path,"Cancel")
88
+ end
89
+
90
+ #Open
91
+ #Click on "Open" button on an Open pop-up.
92
+ def click_open_on_open_as_popup(title,open_file_path)
93
+ click_a_button_on_save_or_open_popup(title,open_file_path,"&Open")
94
+ end
95
+
96
+ #Click on "Cancel" button on an Open pop-up.
97
+ def click_cancel_on_open_as_popup(title,open_file_path)
98
+ click_a_button_on_save_or_open_popup(title,open_file_path,"Cancel")
99
+ end
100
+
101
+ end
102
+
@@ -0,0 +1,35 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module RadioButtonHelper
4
+
5
+ #Click a radio button.
6
+ def click_radio_button(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.radio(property.intern,propertyvalue).set
9
+ end
10
+
11
+ #Clear a radio button.
12
+ def clear_radio_button(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.radio(property.intern,propertyvalue).clear
15
+ end
16
+
17
+ #Highlight or Flash a radio button.
18
+ def flash_radio_button(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.radio(property.intern,propertyvalue).flash
21
+ end
22
+
23
+ #Check whether a radio button exists or not.
24
+ def exists_radio_button(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.radio(property.intern,propertyvalue).exists?
27
+ end
28
+
29
+ #Check whether a radio button is checked or not.
30
+ def is_checked_radio_button(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.radio(property.intern,propertyvalue).checked?
33
+ end
34
+
35
+ end
@@ -0,0 +1,41 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module SelectListHelper
4
+
5
+ #Select from a Select list.
6
+ def select_from_select_list(property,propertyvalue,selected_value)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.select_list(property.intern,propertyvalue).select(selected_value)
9
+ end
10
+
11
+ #Clear selection from a Select list.
12
+ def clear_selection_from_select_list(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.select_list(property.intern,propertyvalue).clearSelection
15
+ end
16
+
17
+ #Get all contents of a Select list.
18
+ def get_all_contents_of_select_list(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.select_list(property.intern,propertyvalue).getAllContents
21
+ end
22
+
23
+ #Highlight or Flash a Select list.
24
+ def flash_select_list(property,propertyvalue)
25
+ propertyvalue=/#{propertyvalue}/
26
+ $ie.select_list(property.intern,propertyvalue).flash
27
+ end
28
+
29
+ #Check whether a Select list exists or not.
30
+ def exists_select_list(property,propertyvalue)
31
+ propertyvalue=/#{propertyvalue}/
32
+ $ie.select_list(property.intern,propertyvalue).exists?
33
+ end
34
+
35
+ #Check whether a particular value is selected from a Select list or not.
36
+ def is_value_selected_from_select_list(property,propertyvalue,selected_value)
37
+ propertyvalue=/#{propertyvalue}/
38
+ $ie.select_list(property.intern,propertyvalue).selected?(selected_value)
39
+ end
40
+
41
+ end
@@ -0,0 +1,17 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module SpanHelper
4
+
5
+ #Highlight or Flash a span.
6
+ def flash_span(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.span(property.intern,propertyvalue).flash
9
+ end
10
+
11
+ #Check whether a span exists or not.
12
+ def exists_span(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.span(property.intern,propertyvalue).exists?
15
+ end
16
+
17
+ end
@@ -0,0 +1,24 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module TableHelper
4
+
5
+ #Highlight or Flash a table.
6
+ def flash_table(property,propertyvalue)
7
+ propertyvalue=/#{propertyvalue}/
8
+ $ie.table(property.intern,propertyvalue).flash
9
+ end
10
+
11
+ #Check whether a table exists or not.
12
+ def exists_table(property,propertyvalue)
13
+ propertyvalue=/#{propertyvalue}/
14
+ $ie.table(property.intern,propertyvalue).exists?
15
+ end
16
+
17
+ #Return the table contents.
18
+ def return_table_contents(property,propertyvalue)
19
+ propertyvalue=/#{propertyvalue}/
20
+ $ie.table(property.intern,propertyvalue).to_a
21
+ end
22
+
23
+ end
24
+
@@ -0,0 +1,51 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module TextFieldHelper
4
+
5
+ #Set a texfield with a text.
6
+ def set_textfield(property,propertyvalue,settextvalue)
7
+ $settext=settextvalue
8
+ $ie.text_field(property.intern,propertyvalue).set settextvalue
9
+ end
10
+
11
+ #Get the text from the textfield.
12
+ def get_textfield()
13
+ if $settext.nil?
14
+ return nil
15
+ else
16
+ return $settext
17
+ end
18
+ end
19
+
20
+ #Clear a texfield.
21
+ def clear_textfield(property,propertyvalue)
22
+ propertyvalue=/#{propertyvalue}/
23
+ $ie.text_field(property.intern,propertyvalue).clear
24
+ end
25
+
26
+ #Highlight or Flash a textfield.
27
+ def flash_textfield(property,propertyvalue)
28
+ propertyvalue=/#{propertyvalue}/
29
+ $ie.text_field(property.intern,propertyvalue).flash
30
+ end
31
+
32
+ #Check whether a textfield exists or not.
33
+ def exists_textfield(property,propertyvalue)
34
+ propertyvalue=/#{propertyvalue}/
35
+ $ie.text_field(property.intern,propertyvalue).exists?
36
+ end
37
+
38
+ #Check whether a textfield is blank or not.
39
+ def is_blank_textfield()
40
+ return $settext.nil? ? true : false
41
+ end
42
+
43
+ end
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
@@ -0,0 +1,144 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+ module ValidationsHelper
4
+
5
+ #Check whether a character range is present in a textfield or not.
6
+ def validate_chars_range_contain_textfield(range_start,range_end) #for positive integers and chars range
7
+ if (range_start <= range_end) and (range_start.length==1) and (range_end.length==1)
8
+ puts $settext.gsub(/[#{range_start}-#{range_end}]/,'*').index('*')? "Present" : "Not Present"
9
+ else
10
+ puts "Error!!! :-Please input a valid range"
11
+ end
12
+ end
13
+
14
+ #Check whether a substring is present in a textfield or not.
15
+ def contains_sub_string(substring)
16
+ return $settext.sub(substring,'*').index('*') ? true : false
17
+ end
18
+
19
+ #Check whether a date is in mmddyyyy format or not.
20
+ def validate_date_format_mmddyyyy(date)
21
+ if(date =~ /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$/).nil?
22
+ puts "Invalid Date(mmddyyyy) Format"
23
+ else
24
+ puts "Valid Date(mmddyyyy) Format"
25
+ end
26
+ end
27
+
28
+ #Check whether a date is in ddmmyyyy format or not.
29
+ def validate_date_format_ddmmyyyy(date)
30
+ if(date=~/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.](19|20)\d\d$/).nil?
31
+ puts "Invalid Date(ddmmyyyy) Format"
32
+ else
33
+ puts "Valid Date(ddmmyyyy) Format"
34
+ end
35
+ end
36
+
37
+ #Check whether the age entered is in the given range or not.
38
+ def is_age_in_the_range(range_start,range_end)
39
+ if ($settext.to_i>=range_start.to_i and $settext.to_i<=range_end.to_i)
40
+ return true
41
+ else
42
+ return false
43
+ end
44
+ end
45
+
46
+ #Check whether e-mail adress supplied is valid or not.
47
+ def validate_email_address(email_id)
48
+ if(email_id=~/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/).nil?
49
+ puts "Invalid E-mail id Format"
50
+ else
51
+ puts "Valid E-mail id Format"
52
+ end
53
+ end
54
+
55
+ #Check whether the indian mobile number entered is valid or not.
56
+ def validate_indian_mobile_number(mobile_no)
57
+ if(mobile_no.to_i>0)
58
+ if(mobile_no.length==10)
59
+ if(mobile_no=~/^([9]{1})([023456789]{1})([0-9]{8})$/).nil?
60
+ puts "Wrong Mobile number format"
61
+ else
62
+ puts "Correct Mobile number format"
63
+ end
64
+ elsif(mobile_no.length<10)
65
+ puts "Error!!!! :- Mobile number length is less than 10 digit"
66
+ elsif(mobile_no.length>10)
67
+ puts "Error!!!! :- Mobile number length is more than 10 digit"
68
+ end
69
+ else
70
+ puts "Error!!!! :- Mobile number can't be negative"
71
+ end
72
+ end
73
+
74
+ #Check whether the indian landline number entered is valid or not.
75
+ def validate_indian_landline_number(landline_no)#like "020-30303030"
76
+ if(landline_no.length==12) #In India landline number should be of 10 digits including std code
77
+ #Here we will prefix "0" before std code and "-" between std code and the respective landline number
78
+ if(landline_no=~/^[0]{1}[1-9]{1}[0-9]{1,3}[\-]{1}[1-9]{1}[0-9]{5,7}$/).nil?
79
+ puts "Wrong Landline number format"
80
+ else
81
+ puts "Correct Landline number format"
82
+ end
83
+ else
84
+ puts "Error!!!! :- Wrong Landline number format"
85
+ end
86
+ end
87
+
88
+ #Check whether the value entered is an Integer or not.
89
+ def is_an_Integer(value)
90
+ value.is_a?(Integer)
91
+ end
92
+
93
+ #Check whether the value entered is a Float or not.
94
+ def is_a_Float(value)
95
+ value.is_a?(Float)
96
+ end
97
+
98
+ #Check whether the value entered is a String or not.
99
+ def is_a_String(value)
100
+ value.is_a?(String)
101
+ end
102
+
103
+ #Check whether the value entered is a Regular Expression or not.
104
+ def is_a_reg_exp(value)
105
+ value.is_a?(Regexp)
106
+ end
107
+
108
+
109
+ #Check whether the value entered is a Character or not.
110
+ def is_a_char(value) #Like "3",'3',"a",'a'
111
+ value.length==1
112
+ end
113
+
114
+ #Check whether the value entered contains a string or not.
115
+ def contain_chars(char_set)
116
+ is_string_contains_character_set($settext,char_set)
117
+ end
118
+
119
+ #Check whether a string contains a regular expression or not.
120
+ def is_string_contains_reg_exp_character_set(char_string,char_set)
121
+ flag=0 #Here char_set is a regular expression of characters
122
+ #The format for regular expression of character set(or char_set) should be like /[$#!@^*&()~]/
123
+ if(char_string.sub(char_set,'**').index('**') ? true : false)==true
124
+ flag=1
125
+ end
126
+ flag==1
127
+ end
128
+
129
+ #Check whether a string contains another string or not.
130
+ def is_string_contains_character_set(char_string,char_set)
131
+ flag=0 #Here char_set is a string of characters
132
+ char_set.each_byte do |char|
133
+ if(char_string.sub(char.chr.to_s,'**').index('**') ? true : false )==true
134
+ flag=1
135
+ end
136
+ end
137
+ flag==1
138
+ end
139
+
140
+ end
141
+
142
+
143
+
144
+
@@ -0,0 +1,9 @@
1
+ require 'watir_helper/common_helpers'
2
+
3
+
4
+ module WatirHelper
5
+
6
+ require 'watir_helper/include_all_helpers'
7
+
8
+ end
9
+
@@ -0,0 +1,37 @@
1
+ require 'watir_helper'
2
+ include WatirHelper
3
+
4
+ goto_page("http://www.google.com/")
5
+ puts get_title
6
+ puts get_url
7
+ flash_div("id","hplogo")
8
+ puts exists_div("id","hplogo")
9
+ set_textfield("name","q","Ruby")
10
+ flash_button("value","Google Search")
11
+ click_button("value","Google Search")
12
+
13
+
14
+ #Pop Up's Support
15
+ # Watir now optionally installs AutoIt - http://www.autoitscript.com/
16
+ # This is the prefered method for dealing wth pop ups, file requesters etc.
17
+ # To enable the same, execute the following steps on your command prompt
18
+ # - cd C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir
19
+ # - regsvr32 AutoItX3.dll
20
+ # - You will get a pop-up of successful registration , press "OK" button on it.
21
+ # Now,You can easily handle pop-up's.
22
+
23
+ # Note:
24
+ # The latest version of Watir is 1.6.5 whose close function doesn't work fine if we
25
+ # handle pop-up's in our scripts.But close function of Watir 1.6.2 works fine with
26
+ # pop-up handling.
27
+
28
+ #goto_page("http://www.autoitscript.com/autoit3/downloads.shtml")
29
+ #click_image_with_popup("src","download_autoit")
30
+ #click_save_on_file_dialog_popup("File Download - Security Warning")
31
+ #click_save_on_save_as_popup("Save As","C:\AutoItV3.exe")
32
+ #puts get_title
33
+ #puts get_url
34
+
35
+ close_browser()
36
+
37
+
@@ -0,0 +1,25 @@
1
+ require 'watir_helper'
2
+ include WatirHelper
3
+
4
+ describe "Scenario :- Google page test" do
5
+
6
+ before(:all) do
7
+ goto_page("http://www.google.com/")
8
+ end
9
+
10
+ it "Should verify whether we are on the Landing Page or not" do
11
+ puts get_title
12
+ puts get_url
13
+ flash_image("id","logo")
14
+ puts exists_image("id","logo")
15
+ set_textfield("name","q","Ruby")
16
+ flash_button("value","Google Search")
17
+ click_button("value","Google Search")
18
+ end
19
+
20
+ after(:all) do
21
+ close_browser()
22
+ end
23
+
24
+ end
25
+
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: watir_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ankur Gera
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-06-16 00:00:00.000000000 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+ description:
16
+ email: ankurgera@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files:
20
+ - README
21
+ files:
22
+ - lib/watir_helper/browser_helper.rb
23
+ - lib/watir_helper/button_helper.rb
24
+ - lib/watir_helper/checkbox_helper.rb
25
+ - lib/watir_helper/common_helpers.rb
26
+ - lib/watir_helper/div_helper.rb
27
+ - lib/watir_helper/frame_helper.rb
28
+ - lib/watir_helper/image_helper.rb
29
+ - lib/watir_helper/include_all_helpers.rb
30
+ - lib/watir_helper/link_helper.rb
31
+ - lib/watir_helper/login_helper.rb
32
+ - lib/watir_helper/popup_handling_helper.rb
33
+ - lib/watir_helper/radio_button_helper.rb
34
+ - lib/watir_helper/select_list_helper.rb
35
+ - lib/watir_helper/span_helper.rb
36
+ - lib/watir_helper/table_helper.rb
37
+ - lib/watir_helper/textfield_helper.rb
38
+ - lib/watir_helper/validations_helper.rb
39
+ - lib/watir_helper.rb
40
+ - test/testing_watir_helper.rb
41
+ - test/testing_watir_helper_spec.rb
42
+ - README
43
+ has_rdoc: true
44
+ homepage:
45
+ licenses: []
46
+ post_install_message:
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubyforge_project:
64
+ rubygems_version: 1.5.2
65
+ signing_key:
66
+ specification_version: 3
67
+ summary: A utility for making Automation Testing faster, simpler and easier.
68
+ test_files:
69
+ - test/testing_watir_helper.rb
70
+ - test/testing_watir_helper_spec.rb