watir_helper 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Rakefile +29 -0
- data/lib/watir_helper/browser_helper.rb +26 -17
- data/lib/watir_helper/div_helper.rb +5 -0
- data/lib/watir_helper/frame_helper.rb +5 -0
- data/lib/watir_helper/login_helper.rb +10 -9
- data/lib/watir_helper/popup_handling_helper.rb +0 -6
- data/lib/watir_helper/select_list_helper.rb +7 -2
- data/lib/watir_helper/span_helper.rb +5 -0
- data/lib/watir_helper/table_helper.rb +28 -1
- data/lib/watir_helper/validations_helper.rb +11 -6
- data/test/browser_helper_spec.rb +25 -0
- data/test/button_helper_spec.rb +26 -0
- data/test/checkbox_helper_spec.rb +18 -0
- data/test/data_type_validations_spec.rb +22 -0
- data/test/div_helper_spec.rb +19 -0
- data/test/frame_helper_spec.rb +18 -0
- data/test/image_helper_spec.rb +22 -0
- data/test/link_helper_spec.rb +18 -0
- data/test/login_helper_spec.rb +14 -0
- data/test/popup_handling_helper_spec.rb +23 -0
- data/test/radio_helper_spec.rb +17 -0
- data/test/select_list_helper_spec.rb +27 -0
- data/test/span_helper_spec.rb +14 -0
- data/test/table_helper_spec.rb +19 -0
- data/test/textfield_helper_spec.rb +29 -0
- data/test/validations_helper_spec.rb +31 -0
- data/watir_helper.gempsec +4 -1
- metadata +62 -4
- data/test/test_watir_helper.rb +0 -17
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWM0OTBmNjVlMGE3Y2I1MjRkMDAzYTg4MzVhZDliNGQwM2IzNWFmNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmQzZTVjYjZkMTZjYmRjMDljMjhhNmI2ZGNkZjRiODhjMzFlODM0Yw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTI1MDlmZjQ1YTEwODI4ZTJjM2FjZTkyNGJjMTEyMjJlNWY5ZWJmOTM3N2Vl
|
10
|
+
MDAzM2U0ZDNlYjQ1ZTYxMTVmMzk0YTAxYzM4YjEwODIxNzNiYTIyNDM4Y2M2
|
11
|
+
NzNhYzc4ZGRhZDgwOGM2NTQ5M2QyZDVkY2JhNjE0Yzg1ZWRlMWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YWEzZTA0Njk4MGIxNGUxMWFjYTAyMDg1NjI5NjJlMzEzMDU5Y2IxZTZiZDU2
|
14
|
+
NDdjM2NiN2FkYTQ1Y2JkYWZiNTdjMjA5M2MwODc4NTc4MjU1NjBiYTQ4YmI4
|
15
|
+
MmVkY2NhNTQ3YjEyN2IwOTYyZGJhNTExZDU2ZWQxYTlkZmJjYzI=
|
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
|
3
|
+
namespace :spec do
|
4
|
+
|
5
|
+
desc "Run a single spec."
|
6
|
+
task :single, [:file_name] do |t, args|
|
7
|
+
args.with_defaults(:file_name => "browser_helper_spec.rb")
|
8
|
+
puts "args is #{args[:file_name].inspect}"
|
9
|
+
# Your code goes here
|
10
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
11
|
+
t.pattern = "test/#{args[:file_name]}"
|
12
|
+
end
|
13
|
+
Rake::Task["spec"].execute
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Run all specs."
|
17
|
+
task :all do
|
18
|
+
test_files = FileList['test/*_spec.rb']
|
19
|
+
puts "test_files is #{test_files.inspect}"
|
20
|
+
# Your code goes here
|
21
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
22
|
+
t.pattern = 'test/*_spec.rb'
|
23
|
+
end
|
24
|
+
Rake::Task["spec"].execute
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
task :default => ["spec:all"]
|
@@ -8,29 +8,37 @@ module BrowserHelper
|
|
8
8
|
#Set a browser.
|
9
9
|
#For e.g set_browser("ie")
|
10
10
|
def set_browser(browser_name)
|
11
|
+
Watir.driver = "webdriver" unless(browser_name == "ie")
|
12
|
+
# Rails.logger.info("=== watir_helper:driver is #{Watir.driver} ===")
|
11
13
|
Watir::Browser.new browser_name.intern
|
12
14
|
end
|
13
15
|
|
14
16
|
#Go to a page.
|
15
17
|
def goto_page(browser_handle, url)
|
16
|
-
|
18
|
+
browser_handle.goto(url)
|
17
19
|
end
|
18
20
|
|
19
|
-
#Go to the
|
20
|
-
def
|
21
|
-
|
21
|
+
#Go to the previous page.
|
22
|
+
def previous_page(browser_handle)
|
23
|
+
browser_handle.back
|
22
24
|
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
alias :goto_previous_page :previous_page
|
27
|
+
|
28
|
+
#Go to the next page.
|
29
|
+
def next_page(browser_handle)
|
30
|
+
browser_handle.forward
|
27
31
|
end
|
28
32
|
|
33
|
+
alias :goto_next_page :next_page
|
34
|
+
|
29
35
|
#Refresh the page.
|
30
|
-
def
|
36
|
+
def refresh(browser_handle)
|
31
37
|
browser_handle.refresh
|
32
38
|
end
|
33
39
|
|
40
|
+
alias :refresh_the_page :refresh
|
41
|
+
|
34
42
|
#Get the title of the browser.
|
35
43
|
def get_title(browser_handle)
|
36
44
|
browser_handle.title
|
@@ -42,33 +50,34 @@ def get_url(browser_handle)
|
|
42
50
|
end
|
43
51
|
|
44
52
|
#Close the browser.
|
53
|
+
#brute force solution => system("taskkill /t /f /im iexplore.exe")
|
45
54
|
def close_browser(browser_handle)
|
46
|
-
|
55
|
+
(Watir.driver == "webdriver") ? browser_handle.close : browser_handle.ie.quit
|
47
56
|
end
|
48
57
|
|
49
58
|
#Attach a browser window.
|
50
|
-
def
|
51
|
-
|
59
|
+
def attach_browser_window(property, propertyvalue)
|
60
|
+
Watir::Browser.attach(property.intern, /#{propertyvalue}/)
|
52
61
|
end
|
53
62
|
|
54
63
|
#Close attached browser window.
|
55
|
-
def
|
56
|
-
close_browser(
|
64
|
+
def close_attached_window(window_handle)
|
65
|
+
close_browser(window_handle)
|
57
66
|
end
|
58
67
|
|
59
68
|
#Minimize the browser.
|
60
69
|
def minimize_browser(browser_handle)
|
61
|
-
browser_handle.minimize
|
70
|
+
browser_handle.minimize unless(Watir.driver == "webdriver")
|
62
71
|
end
|
63
72
|
|
64
73
|
#Maximize the browser.
|
65
74
|
def maximize_browser(browser_handle)
|
66
|
-
browser_handle.maximize
|
75
|
+
browser_handle.maximize unless(Watir.driver == "webdriver")
|
67
76
|
end
|
68
77
|
|
69
78
|
#Verify whether text is present or not.
|
70
|
-
def verify_text?(browser_handle,
|
71
|
-
browser_handle.text.include?(
|
79
|
+
def verify_text?(browser_handle, text_to_verified)
|
80
|
+
browser_handle.text.include?(text_to_verified)
|
72
81
|
end
|
73
82
|
|
74
83
|
end
|
@@ -35,4 +35,9 @@ def exists_div?(browser_handle, property, property_value)
|
|
35
35
|
browser_handle.div(property.intern, /#{property_value}/).exists?
|
36
36
|
end
|
37
37
|
|
38
|
+
#Get div text
|
39
|
+
def get_div_text(browser_handle, property, property_value)
|
40
|
+
browser_handle.div(property.intern, /#{property_value}/).text
|
41
|
+
end
|
42
|
+
|
38
43
|
end
|
@@ -165,6 +165,11 @@ def is_value_selected_from_select_list_inside_frame?(browser_handle, frame_prop,
|
|
165
165
|
browser_handle.frame(frame_prop.intern, /#{frame_prop_val}/).select_list(select_list_prop.intern, /#{select_list_prop_val}/).selected?(selected_value)
|
166
166
|
end
|
167
167
|
|
168
|
+
#Frame contains text or not
|
169
|
+
def frame_contains_text?(browser_handle, frame_prop, frame_prop_val, text_to_verified)
|
170
|
+
browser_handle.frame(frame_prop.intern, /#{frame_prop_val}/).text.include?(text_to_verified)
|
171
|
+
end
|
172
|
+
|
168
173
|
end
|
169
174
|
|
170
175
|
|
@@ -5,25 +5,26 @@ require File.expand_path('common_helpers', File.dirname(__FILE__))
|
|
5
5
|
|
6
6
|
module LoginHelper
|
7
7
|
|
8
|
+
|
9
|
+
def login_using_elem(elem_type, browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, btn_prop, btn_prop_value)
|
10
|
+
browser_handle.text_field(user_prop.intern, user_prop_value).set(username)
|
11
|
+
browser_handle.text_field(pass_prop.intern, pass_prop_value).set(password)
|
12
|
+
(browser_handle.send elem_type, btn_prop.intern, /#{btn_prop_value}/).click
|
13
|
+
end
|
14
|
+
|
8
15
|
#Login using button into an application.
|
9
16
|
def login_using_button(browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, btn_prop, btn_prop_value)
|
10
|
-
|
11
|
-
browser_handle.text_field(pass_prop.intern,pass_prop_value).set(password)
|
12
|
-
browser_handle.button(/#{btn_prop}/.intern, /#{btn_prop_value}/).click
|
17
|
+
login_using_elem("button".to_sym, browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, btn_prop, btn_prop_value)
|
13
18
|
end
|
14
19
|
|
15
20
|
#Login using link into an application.
|
16
21
|
def login_using_link(browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, link_prop, link_prop_value)
|
17
|
-
|
18
|
-
browser_handle.text_field(pass_prop.intern,pass_prop_value).set(password)
|
19
|
-
browser_handle.link(/#{link_prop}/.intern, /#{link_prop_value}/).click
|
22
|
+
login_using_elem("link".to_sym, browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, link_prop, link_prop_value)
|
20
23
|
end
|
21
24
|
|
22
25
|
#Login using image into an application.
|
23
26
|
def login_using_image(browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, img_prop, img_prop_value)
|
24
|
-
|
25
|
-
browser_handle.text_field(pass_prop.intern,pass_prop_value).set(password)
|
26
|
-
browser_handle.image(/#{img_prop}/.intern, /#{img_prop_value}/).click
|
27
|
+
login_using_image("image".to_sym, browser_handle, user_prop, user_prop_value, username, pass_prop, pass_prop_value, password, img_prop, img_prop_value)
|
27
28
|
end
|
28
29
|
|
29
30
|
end
|
@@ -13,12 +13,6 @@ def click_button_popup(title, button_id)
|
|
13
13
|
window.button(:value => /#{button_id}/).click
|
14
14
|
end
|
15
15
|
|
16
|
-
#Pop-up window exists
|
17
|
-
def popup_exists_with_title?(title)
|
18
|
-
window = RAutomation::Window.new(:title => /#{title}/)
|
19
|
-
window.exists?
|
20
|
-
end
|
21
|
-
|
22
16
|
#Click "OK" button on a javascript pop-up.
|
23
17
|
def click_ok_js_popup(title)
|
24
18
|
click_button_popup(title, "OK")
|
@@ -12,12 +12,17 @@ end
|
|
12
12
|
|
13
13
|
#Clear selection from a Select list.
|
14
14
|
def clear_selection_from_select_list(browser_handle, property, property_value)
|
15
|
-
browser_handle.select_list(property.intern, /#{property_value}/).
|
15
|
+
browser_handle.select_list(property.intern, /#{property_value}/).clear
|
16
|
+
end
|
17
|
+
|
18
|
+
#Get selected contents of a Select list.
|
19
|
+
def get_selected_contents_of_select_list(browser_handle, property, property_value)
|
20
|
+
browser_handle.select_list(property.intern, /#{property_value}/).selected_options.map(&:text)
|
16
21
|
end
|
17
22
|
|
18
23
|
#Get all contents of a Select list.
|
19
24
|
def get_all_contents_of_select_list(browser_handle, property, property_value)
|
20
|
-
browser_handle.select_list(property.intern, /#{property_value}/).
|
25
|
+
browser_handle.select_list(property.intern, /#{property_value}/).options.map(&:text)
|
21
26
|
end
|
22
27
|
|
23
28
|
#Highlight or Flash a Select list.
|
@@ -5,6 +5,11 @@ require File.expand_path('common_helpers', File.dirname(__FILE__))
|
|
5
5
|
|
6
6
|
module SpanHelper
|
7
7
|
|
8
|
+
#Click a span element
|
9
|
+
def click_span(browser_handle, property, property_value)
|
10
|
+
browser_handle.span(property.intern, /#{property_value}/).click
|
11
|
+
end
|
12
|
+
|
8
13
|
#Highlight or Flash a span.
|
9
14
|
def flash_span(browser_handle, property, property_value)
|
10
15
|
browser_handle.span(property.intern, /#{property_value}/).flash
|
@@ -15,9 +15,36 @@ def exists_table?(browser_handle, property, property_value)
|
|
15
15
|
browser_handle.table(property.intern, /#{property_value}/).exists?
|
16
16
|
end
|
17
17
|
|
18
|
+
#Get contents of a particular row no. of a table
|
19
|
+
def get_row_contents(browser_handle, property, property_value, row_num)
|
20
|
+
browser_handle.table(property.intern, /#{property_value}/)[row_num - 1].text
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_a_cell_content(browser_handle, property, property_value, row_num, col_num)
|
24
|
+
browser_handle.table(property.intern, /#{property_value}/)[row_num - 1][col_num - 1].text
|
25
|
+
end
|
26
|
+
|
27
|
+
#Get no. of rows of a table
|
28
|
+
def get_nor_table(browser_handle, property, property_value)
|
29
|
+
browser_handle.table(property.intern, /#{property_value}/).rows.length
|
30
|
+
end
|
31
|
+
|
32
|
+
#Get no. of cols of a table
|
33
|
+
def get_noc_table(browser_handle, property, property_value)
|
34
|
+
browser_handle.table(property.intern, /#{property_value}/).row.cells.length
|
35
|
+
end
|
36
|
+
|
18
37
|
#Get the table contents.
|
19
38
|
def get_table_contents(browser_handle, property, property_value)
|
20
|
-
|
39
|
+
content_arr = []
|
40
|
+
nor = get_nor_table(browser_handle, property, property_value)
|
41
|
+
noc = get_noc_table(browser_handle, property, property_value)
|
42
|
+
nor.times do |row_num|
|
43
|
+
noc.times do |col_num|
|
44
|
+
content_arr << browser_handle.table(property.intern, /#{property_value}/)[row_num][col_num].text
|
45
|
+
end
|
46
|
+
end
|
47
|
+
content_arr
|
21
48
|
end
|
22
49
|
|
23
50
|
end
|
@@ -107,12 +107,17 @@ def valid_age?(age)
|
|
107
107
|
is_integer?(age) ? (age > 0 and age <= 100) : age_data_type_format_msg
|
108
108
|
end
|
109
109
|
|
110
|
+
#Print invalid data type msg.
|
111
|
+
def arg_invalid_type_msg(arg_pos, data_type_expected)
|
112
|
+
puts "#{arg_pos} argument should be a #{data_type_expected}."
|
113
|
+
end
|
114
|
+
|
110
115
|
#Valid string and regular expression.
|
111
116
|
def valid_string_and_reg_ex?(char_string, reg_exp)
|
112
117
|
str_flag = is_string?(char_string)
|
113
118
|
regex_flag = is_reg_exp?(reg_exp)
|
114
|
-
|
115
|
-
|
119
|
+
arg_invalid_type_msg("First", "String") unless(str_flag)
|
120
|
+
arg_invalid_type_msg("Second", "Regular Expression") unless(regex_flag)
|
116
121
|
str_flag && regex_flag
|
117
122
|
end
|
118
123
|
|
@@ -120,8 +125,8 @@ end
|
|
120
125
|
def valid_strings?(string1, string2)
|
121
126
|
str1_flag = is_string?(string1)
|
122
127
|
str2_flag = is_string?(string2)
|
123
|
-
|
124
|
-
|
128
|
+
arg_invalid_type_msg("First", "String") unless(str1_flag)
|
129
|
+
arg_invalid_type_msg("Second", "String") unless(str2_flag)
|
125
130
|
str1_flag && str2_flag
|
126
131
|
end
|
127
132
|
|
@@ -132,14 +137,14 @@ end
|
|
132
137
|
#and is_string_contains_reg_exp?("ankurgeragmail.com", /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)
|
133
138
|
#will return false
|
134
139
|
def is_string_contains_reg_exp?(char_string, reg_exp)
|
135
|
-
(char_string.sub(reg_exp, '**').index('**') ? true : false)
|
140
|
+
(valid_string_and_reg_ex?(char_string, reg_exp) == true) ? (char_string.sub(reg_exp, '**').index('**') ? true : false) : false
|
136
141
|
end
|
137
142
|
|
138
143
|
#Check whether a string contains another string or not.
|
139
144
|
#For e.g is_string_contains_another_string?("abc123@gmail.com", "123@g") will return true
|
140
145
|
#and is_string_contains_another_string?("abc123@gmail.com", "13@g") will return false
|
141
146
|
def is_string_contains_another_string?(char_string, char_set)
|
142
|
-
(char_string.sub(char_set, '**').index('**') ? true : false)
|
147
|
+
(valid_strings?(char_string, char_set) == true) ? (char_string.sub(char_set, '**').index('**') ? true : false) : false
|
143
148
|
end
|
144
149
|
|
145
150
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Browser helper specs" do
|
4
|
+
|
5
|
+
it "Should test browser helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.google.com/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
set_textfield(browser, "name", "q", 100)
|
10
|
+
click_button(browser, "name","btnG")
|
11
|
+
puts verify_text?(browser, "100")
|
12
|
+
goto_previous_page(browser)
|
13
|
+
goto_next_page(browser)
|
14
|
+
refresh_the_page(browser)
|
15
|
+
puts "Title is #{get_title(browser)}"
|
16
|
+
puts "Url is #{get_url(browser)}"
|
17
|
+
minimize_browser(browser)
|
18
|
+
close_browser(browser)
|
19
|
+
browser2 = set_browser("ie")
|
20
|
+
goto_page(browser2, "http://www.google.com/")
|
21
|
+
window_handle = attach_browser_window(:title, get_title(browser2))
|
22
|
+
close_attached_window(window_handle)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Button helper specs" do
|
4
|
+
|
5
|
+
it "Should test button helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.google.com/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_button(browser, "name","btnG")
|
10
|
+
goto_page(browser, "http://www.google.com/")
|
11
|
+
maximize_browser(browser)
|
12
|
+
click_button_with_popup(browser, "name","btnG")
|
13
|
+
goto_page(browser, "http://www.google.com/")
|
14
|
+
maximize_browser(browser)
|
15
|
+
double_click_button(browser, "name","btnG")
|
16
|
+
goto_page(browser, "http://www.google.com/")
|
17
|
+
maximize_browser(browser)
|
18
|
+
double_click_button_with_popup(browser, "name","btnG")
|
19
|
+
goto_page(browser, "http://www.google.com/")
|
20
|
+
maximize_browser(browser)
|
21
|
+
flash_button(browser, "name","btnG")
|
22
|
+
puts exists_button?(browser, "name","btnG")
|
23
|
+
close_browser(browser)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Checkbox helper specs" do
|
4
|
+
|
5
|
+
it "Should test checkbox helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://codepad.org/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_checkbox(browser, "name", "private")
|
10
|
+
puts is_checkbox_checked?(browser, "name", "private")
|
11
|
+
clear_checkbox(browser, "name", "private")
|
12
|
+
puts is_checkbox_checked?(browser, "name", "private")
|
13
|
+
flash_checkbox(browser, "name", "private")
|
14
|
+
puts exists_checkbox?(browser, "name", "private")
|
15
|
+
close_browser(browser)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Data type validations specs" do
|
4
|
+
|
5
|
+
it "Should test data type validations features" do
|
6
|
+
puts is_integer?("100") #false
|
7
|
+
puts is_integer?(100) #true
|
8
|
+
puts is_float?("100.0") #false
|
9
|
+
puts is_float?(100) #false
|
10
|
+
puts is_float?(100.0) #true
|
11
|
+
puts is_string?(100) #false
|
12
|
+
puts is_string?("100") #true
|
13
|
+
puts is_reg_exp?("100") #false
|
14
|
+
puts is_reg_exp?(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) #true
|
15
|
+
puts is_range?((1..9)) #true
|
16
|
+
puts is_range?([1-9]) #false
|
17
|
+
puts is_char?("10") #false
|
18
|
+
puts is_char?("1") #true
|
19
|
+
puts is_char?(1) #true
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Div helper specs" do
|
4
|
+
|
5
|
+
it "Should test div helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://codepad.org/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_div(browser, "id", "editor")
|
10
|
+
click_div_with_popup(browser, "id", "editor")
|
11
|
+
double_click_div(browser, "id", "editor")
|
12
|
+
double_click_div_with_popup(browser, "id", "editor")
|
13
|
+
flash_div(browser, "id", "editor")
|
14
|
+
puts exists_div?(browser, "id", "editor")
|
15
|
+
puts get_div_text(browser, "id", "editor")
|
16
|
+
close_browser(browser)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Frame helper specs" do
|
4
|
+
|
5
|
+
it "Should test frame helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.w3schools.com/js/tryit.asp?filename=tryjs_confirm")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_button_with_popup_inside_frame(browser, "id", "iframeResult", "value", "Try it")
|
10
|
+
click_ok_js_popup("page")
|
11
|
+
puts frame_contains_text?(browser, "id", "iframeResult", "You pressed OK!")
|
12
|
+
click_button_with_popup_inside_frame(browser, "id", "iframeResult", "value", "Try it")
|
13
|
+
click_cancel_js_popup("page")
|
14
|
+
puts frame_contains_text?(browser, "id", "iframeResult", "You pressed Cancel!")
|
15
|
+
close_browser(browser)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Image helper specs" do
|
4
|
+
|
5
|
+
it "Should test image helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_image(browser, "alt", "Ruby logo.svg")
|
10
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
11
|
+
click_image_with_popup(browser, "alt", "Ruby logo.svg")
|
12
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
13
|
+
double_click_image(browser, "alt", "Ruby logo.svg")
|
14
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
15
|
+
double_click_image_with_popup(browser, "alt", "Ruby logo.svg")
|
16
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
17
|
+
flash_image(browser, "alt", "Ruby logo.svg")
|
18
|
+
puts exists_image?(browser, "alt", "Ruby logo.svg")
|
19
|
+
close_browser(browser)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Link helper specs" do
|
4
|
+
|
5
|
+
it "Should test link helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_link(browser, "title", "Ruby on Rails")
|
10
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
11
|
+
click_link_with_popup(browser, "title", "Ruby on Rails")
|
12
|
+
goto_page(browser, "http://en.wikipedia.org/wiki/Ruby_(programming_language)")
|
13
|
+
flash_link(browser, "title", "Ruby on Rails")
|
14
|
+
puts exists_link?(browser, "title", "Ruby on Rails")
|
15
|
+
close_browser(browser)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Radio helper specs" do
|
4
|
+
|
5
|
+
it "Should test radio helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
login_using_button(browser, "id", "Email", "abc@gmail.com", "id", "Passwd", "xyz", "id", "signIn")
|
10
|
+
puts verify_text?(browser, "The email or password you entered is incorrect")
|
11
|
+
close_browser(browser)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Popup handling helper specs" do
|
4
|
+
|
5
|
+
it "Should test Popup handling helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.w3schools.com/js/tryit.asp?filename=tryjs_confirm")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_button_with_popup_inside_frame(browser, "id", "iframeResult", "value", "Try it")
|
10
|
+
click_ok_js_popup("page")
|
11
|
+
puts frame_contains_text?(browser, "id", "iframeResult", "You pressed OK!")
|
12
|
+
click_button_with_popup_inside_frame(browser, "id", "iframeResult", "value", "Try it")
|
13
|
+
click_cancel_js_popup("page")
|
14
|
+
puts frame_contains_text?(browser, "id", "iframeResult", "You pressed Cancel!")
|
15
|
+
#Run below code by adding the url(mentioned below) in the secure list
|
16
|
+
# goto_page(browser, "http://www.sublimetext.com/download")
|
17
|
+
# click_link_with_popup(browser, "href", "Setup.exe")
|
18
|
+
# click_save_file_dialog_popup("File Download")
|
19
|
+
# click_save_saveas_popup("Save", "C:\Ruby_Projects")
|
20
|
+
close_browser(browser)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Radio helper specs" do
|
4
|
+
|
5
|
+
it "Should test radio helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://codepad.org/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
click_radio_button(browser, "value", "C++")
|
10
|
+
puts is_radio_button_checked?(browser, "value", "C++")
|
11
|
+
clear_radio_button(browser, "value", "C++")
|
12
|
+
flash_radio_button(browser, "value", "C++")
|
13
|
+
puts exists_radio_button?(browser, "value", "C++")
|
14
|
+
close_browser(browser)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Select list helper specs" do
|
4
|
+
|
5
|
+
it "Should test select list helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.cleartrip.com/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
select_from_select_list(browser, "id", "Adults", "2")
|
10
|
+
puts is_value_selected_from_select_list?(browser, "id", "Adults", "2")
|
11
|
+
contents = get_selected_contents_of_select_list(browser, "id", "Adults")
|
12
|
+
puts "=== selected contents are #{contents.inspect} ==="
|
13
|
+
flash_select_list(browser, "id", "Adults")
|
14
|
+
exists_select_list?(browser, "id", "Adults")
|
15
|
+
goto_page(browser, "http://www.htmlcodetutorial.com/forms/_SELECT_MULTIPLE.html")
|
16
|
+
puts "=== all contents are: ==="
|
17
|
+
puts get_all_contents_of_select_list(browser, "name", "toppings")
|
18
|
+
select_from_select_list(browser, "name", "toppings", "onions")
|
19
|
+
select_from_select_list(browser, "name", "toppings", "green peppers")
|
20
|
+
contents = get_selected_contents_of_select_list(browser, "name", "toppings")
|
21
|
+
puts "=== selected contents are #{contents.inspect} ==="
|
22
|
+
puts is_value_selected_from_select_list?(browser, "name", "toppings", "onions")
|
23
|
+
clear_selection_from_select_list(browser, "name", "toppings")
|
24
|
+
close_browser(browser)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Span helper specs" do
|
4
|
+
|
5
|
+
it "Should test span helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.cleartrip.com/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
puts exists_span?(browser, "class", "cleartripLogo")
|
10
|
+
flash_span(browser, "class", "cleartripLogo")
|
11
|
+
close_browser(browser)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Table helper specs" do
|
4
|
+
|
5
|
+
it "Should test table helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.textfixer.com/tutorials/css-tables.php")
|
8
|
+
maximize_browser(browser)
|
9
|
+
puts exists_table?(browser, "class", "gridtable")
|
10
|
+
flash_table(browser, "class", "gridtable")
|
11
|
+
puts get_row_contents(browser, "class", "gridtable", 1)
|
12
|
+
puts get_a_cell_content(browser, "class", "gridtable", 1, 1)
|
13
|
+
puts get_nor_table(browser, "class", "gridtable")
|
14
|
+
puts get_noc_table(browser, "class", "gridtable")
|
15
|
+
puts get_table_contents(browser, "class", "gridtable")
|
16
|
+
close_browser(browser)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Textfield helper specs" do
|
4
|
+
|
5
|
+
it "Should test textfield helper features" do
|
6
|
+
browser = set_browser("ie")
|
7
|
+
goto_page(browser, "http://www.google.com/")
|
8
|
+
maximize_browser(browser)
|
9
|
+
puts "Set textfield contenets."
|
10
|
+
set_textfield(browser, "name", "q", 100)
|
11
|
+
puts "Textfield contents are:"
|
12
|
+
puts get_textfield_contents(browser, "name", "q")
|
13
|
+
puts "Clear textfield contents."
|
14
|
+
clear_textfield(browser, "name", "q")
|
15
|
+
puts "Textfield contents are:"
|
16
|
+
puts get_textfield_contents(browser, "name", "q")
|
17
|
+
puts "Textfield is empty? :"
|
18
|
+
puts is_blank_textfield?(browser, "name", "q")
|
19
|
+
puts "Set textfield contents."
|
20
|
+
set_textfield(browser, "name", "q", 100)
|
21
|
+
puts "Textfield contains the value entered? :"
|
22
|
+
puts textfield_contains_value?(browser, "name", "q", "100")
|
23
|
+
flash_textfield(browser, "name", "q")
|
24
|
+
puts "Textfield exists? :"
|
25
|
+
puts exists_textfield?(browser, "name", "q")
|
26
|
+
close_browser(browser)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.expand_path('../lib/watir_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe "Scenario :- Validations helper specs" do
|
4
|
+
|
5
|
+
it "Should test validations helper features" do
|
6
|
+
puts valid_mmddyyyy_date_format?(02-10-2015) #false
|
7
|
+
puts valid_mmddyyyy_date_format?("02-10-2015") #true
|
8
|
+
puts valid_mmddyyyy_date_format?("22-10-2015") #false
|
9
|
+
puts valid_ddmmyyyy_date_format?(10-02-2015) #false
|
10
|
+
puts valid_ddmmyyyy_date_format?("10-02-2015") #true
|
11
|
+
puts valid_ddmmyyyy_date_format?("42-10-2015") #false
|
12
|
+
puts valid_email_id?("abc123@gmail.com") #true
|
13
|
+
puts valid_email_id?("abc123gmail.com") #false
|
14
|
+
puts valid_indian_mobile_number?(9123456789) #false
|
15
|
+
puts valid_indian_mobile_number?("9123456789") #true
|
16
|
+
puts valid_indian_mobile_number?("91234567890") #false
|
17
|
+
puts valid_indian_landline_number?(01303030303) #false
|
18
|
+
puts valid_indian_landline_number?('0130-3030303') #true
|
19
|
+
puts valid_indian_landline_number?('0130-30303030') #false
|
20
|
+
puts valid_age?("100") #false
|
21
|
+
puts valid_age?(-100) #false
|
22
|
+
puts valid_age?(100) #true
|
23
|
+
puts is_string_contains_reg_exp?("ankurgera@gmail.com", /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) #true
|
24
|
+
puts is_string_contains_reg_exp?("ankurgeragmail.com", /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) #false
|
25
|
+
puts is_string_contains_another_string?("abc123@gmail.com", "123@g") #true
|
26
|
+
puts is_string_contains_another_string?("abc123@gmail.com", "13@g") #false
|
27
|
+
puts is_string_contains_reg_exp?("ankurgeragmail.com", "abc") #false
|
28
|
+
puts is_string_contains_another_string?("abc123@gmail.com", /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) #false
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/watir_helper.gempsec
CHANGED
@@ -6,7 +6,7 @@ require 'rake/testtask'
|
|
6
6
|
|
7
7
|
spec = Gem::Specification.new do |s|
|
8
8
|
s.name = "watir_helper"
|
9
|
-
s.version = "1.0.
|
9
|
+
s.version = "1.0.3"
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
11
|
s.authors = ["Ankur Gera"]
|
12
12
|
s.email = "ankurgera@gmail.com"
|
@@ -16,4 +16,7 @@ spec = Gem::Specification.new do |s|
|
|
16
16
|
fast as it is very easy to use.}
|
17
17
|
s.files = %x{git ls-files}.split("\n")
|
18
18
|
s.require_paths = ["lib"]
|
19
|
+
s.add_dependency "watir"
|
20
|
+
s.add_dependency "rautomation"
|
21
|
+
s.add_dependency "rspec"
|
19
22
|
end
|
metadata
CHANGED
@@ -1,15 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ankur Gera
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
-
dependencies:
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: watir
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rautomation
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
13
55
|
description: ! "This gem is developed for novice automation tester's to write automation
|
14
56
|
scripts\n fast as it is very easy to use."
|
15
57
|
email: ankurgera@gmail.com
|
@@ -19,6 +61,7 @@ extra_rdoc_files: []
|
|
19
61
|
files:
|
20
62
|
- LICENSE
|
21
63
|
- README
|
64
|
+
- Rakefile
|
22
65
|
- lib/watir_helper.rb
|
23
66
|
- lib/watir_helper/browser_helper.rb
|
24
67
|
- lib/watir_helper/button_helper.rb
|
@@ -38,7 +81,22 @@ files:
|
|
38
81
|
- lib/watir_helper/table_helper.rb
|
39
82
|
- lib/watir_helper/textfield_helper.rb
|
40
83
|
- lib/watir_helper/validations_helper.rb
|
41
|
-
- test/
|
84
|
+
- test/browser_helper_spec.rb
|
85
|
+
- test/button_helper_spec.rb
|
86
|
+
- test/checkbox_helper_spec.rb
|
87
|
+
- test/data_type_validations_spec.rb
|
88
|
+
- test/div_helper_spec.rb
|
89
|
+
- test/frame_helper_spec.rb
|
90
|
+
- test/image_helper_spec.rb
|
91
|
+
- test/link_helper_spec.rb
|
92
|
+
- test/login_helper_spec.rb
|
93
|
+
- test/popup_handling_helper_spec.rb
|
94
|
+
- test/radio_helper_spec.rb
|
95
|
+
- test/select_list_helper_spec.rb
|
96
|
+
- test/span_helper_spec.rb
|
97
|
+
- test/table_helper_spec.rb
|
98
|
+
- test/textfield_helper_spec.rb
|
99
|
+
- test/validations_helper_spec.rb
|
42
100
|
- watir_helper.gempsec
|
43
101
|
homepage: https://rubygems.org/gems/watir_helper
|
44
102
|
licenses: []
|
data/test/test_watir_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require '../lib/watir_helper.rb'
|
2
|
-
|
3
|
-
ie = set_browser("ie")
|
4
|
-
goto_page(ie, "http://www.google.com/")
|
5
|
-
get_title(ie)
|
6
|
-
get_url(ie)
|
7
|
-
flash_div(ie, "id", "hplogo")
|
8
|
-
exists_div?(ie, "id", "hplogo")
|
9
|
-
puts is_blank_textfield?(ie, "name", "q")
|
10
|
-
set_textfield(ie, "name", "q", 100)
|
11
|
-
puts is_blank_textfield?(ie, "name", "q")
|
12
|
-
puts textfield_contains_value?(ie, "name", "q", "100")
|
13
|
-
puts textfield_contains_value?(ie, "name", "q", "101")
|
14
|
-
flash_button(ie, "name","btnG")
|
15
|
-
click_button(ie, "name","btnG")
|
16
|
-
close_browser(ie)
|
17
|
-
|