selenium-cucumber 2.1.4 → 3.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/generate.rb +19 -20
- data/bin/helper.rb +50 -50
- data/bin/selenium-cucumber +29 -30
- data/doc/canned_steps.md +656 -656
- data/doc/installation.md +16 -16
- data/doc/selenium-cucumber-API.md +120 -120
- data/doc/selenium-cucumber-help.md +18 -18
- data/features-skeleton/my_first.feature +5 -5
- data/features-skeleton/step_definitions/custom_steps.rb +4 -4
- data/features-skeleton/support/env.rb +51 -51
- data/features-skeleton/support/hooks.rb +47 -38
- data/lib/selenium-cucumber.rb +1 -1
- data/lib/selenium-cucumber/assertion_steps.rb +89 -89
- data/lib/selenium-cucumber/click_elements_steps.rb +36 -36
- data/lib/selenium-cucumber/configuration_steps.rb +6 -6
- data/lib/selenium-cucumber/input_steps.rb +69 -69
- data/lib/selenium-cucumber/javascript_handling_steps.rb +9 -9
- data/lib/selenium-cucumber/methods/assertion_methods.rb +295 -344
- data/lib/selenium-cucumber/methods/click_elements_methods.rb +23 -23
- data/lib/selenium-cucumber/methods/configuration_methods.rb +35 -35
- data/lib/selenium-cucumber/methods/error_handling_methods.rb +86 -86
- data/lib/selenium-cucumber/methods/input_methods.rb +67 -67
- data/lib/selenium-cucumber/methods/javascript_handling_methods.rb +9 -9
- data/lib/selenium-cucumber/methods/misc_methods.rb +34 -34
- data/lib/selenium-cucumber/methods/mobile_methods.rb +241 -241
- data/lib/selenium-cucumber/methods/navigate_methods.rb +165 -165
- data/lib/selenium-cucumber/methods/progress_methods.rb +15 -15
- data/lib/selenium-cucumber/methods/required_files.rb +10 -10
- data/lib/selenium-cucumber/methods/screenshot_methods.rb +6 -6
- data/lib/selenium-cucumber/mobile_steps.rb +99 -99
- data/lib/selenium-cucumber/navigation_steps.rb +105 -105
- data/lib/selenium-cucumber/progress_steps.rb +18 -18
- data/lib/selenium-cucumber/screenshot_steps.rb +5 -5
- data/lib/selenium-cucumber/version.rb +5 -5
- metadata +69 -91
- data/example/android/android_app/HinduCalendar.zip +0 -0
- data/example/android/android_app/HinduCalendar/HinduCalendar.apk +0 -0
- data/example/android/android_app/HinduCalendar/README.md +0 -19
- data/example/android/android_app/HinduCalendar/Results.html +0 -472
- data/example/android/android_app/HinduCalendar/features/01_HC_homepage_menu_validation.feature +0 -36
- data/example/android/android_app/HinduCalendar/features/02_HC_homepage_menu_navigation.feature +0 -71
- data/example/android/android_app/HinduCalendar/features/03_HC_Create_Save_View_Delete_Kundali.feature +0 -63
- data/example/android/android_app/HinduCalendar/features/actual_images/test.png +0 -0
- data/example/android/android_app/HinduCalendar/features/expected_images/test.png +0 -0
- data/example/android/android_app/HinduCalendar/features/image_difference/test.png +0 -0
- data/example/android/android_app/HinduCalendar/features/my_first.feature +0 -1
- data/example/android/android_app/HinduCalendar/features/screenshots/test.png +0 -0
- data/example/android/android_app/HinduCalendar/features/step_definitions/01_HC_homepage_menu_validation.rb +0 -81
- data/example/android/android_app/HinduCalendar/features/step_definitions/02_HC_homepage_menu_navigation.rb +0 -132
- data/example/android/android_app/HinduCalendar/features/step_definitions/03_HC_Create_Save_View_Delete_Kundali.rb +0 -413
- data/example/android/android_app/HinduCalendar/features/step_definitions/custom_steps.rb +0 -5
- data/example/android/android_app/HinduCalendar/features/support/env.rb +0 -51
- data/example/android/android_app/HinduCalendar/features/support/hooks.rb +0 -38
- data/example/android/android_app/android_app_calculator.zip +0 -0
- data/example/android/android_app/android_app_calculator/AndroidCalculator.apk +0 -0
- data/example/android/android_app/android_app_calculator/features/actual_images/test.png +0 -0
- data/example/android/android_app/android_app_calculator/features/calculator.feature +0 -36
- data/example/android/android_app/android_app_calculator/features/expected_images/test.png +0 -0
- data/example/android/android_app/android_app_calculator/features/image_difference/test.png +0 -0
- data/example/android/android_app/android_app_calculator/features/my_first.feature +0 -13
- data/example/android/android_app/android_app_calculator/features/screenshots/test.png +0 -0
- data/example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb +0 -5
- data/example/android/android_app/android_app_calculator/features/support/env.rb +0 -51
- data/example/android/android_app/android_app_calculator/features/support/hooks.rb +0 -38
- data/example/android/android_web/android_web_gmail_login.zip +0 -0
- data/example/android/android_web/android_web_gmail_login/features/actual_images/test.png +0 -0
- data/example/android/android_web/android_web_gmail_login/features/expected_images/test.png +0 -0
- data/example/android/android_web/android_web_gmail_login/features/gmail_login.feature +0 -12
- data/example/android/android_web/android_web_gmail_login/features/image_difference/test.png +0 -0
- data/example/android/android_web/android_web_gmail_login/features/my_first.feature +0 -1
- data/example/android/android_web/android_web_gmail_login/features/screenshots/test.png +0 -0
- data/example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
- data/example/android/android_web/android_web_gmail_login/features/support/env.rb +0 -51
- data/example/android/android_web/android_web_gmail_login/features/support/hooks.rb +0 -38
- data/example/desktop web/desktop_web_gmail_login.zip +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/actual_images/test.png +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/expected_images/test.png +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/gmail_login.feature +0 -10
- data/example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature +0 -22
- data/example/desktop web/desktop_web_gmail_login/features/image_difference/test.png +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/my_first.feature +0 -1
- data/example/desktop web/desktop_web_gmail_login/features/result.html b/data/example/desktop → web/desktop_web_gmail_login/features/result.html +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/screenshots/test.png +0 -0
- data/example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
- data/example/desktop web/desktop_web_gmail_login/features/support/env.rb +0 -51
- data/example/desktop web/desktop_web_gmail_login/features/support/hooks.rb +0 -38
- data/example/desktop web/desktop_web_gmail_login/result.html +0 -478
@@ -1,23 +1,23 @@
|
|
1
|
-
require_relative 'required_files'
|
2
|
-
|
3
|
-
|
4
|
-
def click(access_type, access_name)
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
def click_forcefully(access_type, access_name)
|
9
|
-
$driver.execute_script('arguments[0].click();',
|
10
|
-
end
|
11
|
-
|
12
|
-
def double_click(access_type, access_value)
|
13
|
-
element =
|
14
|
-
$driver.action.double_click(element).perform
|
15
|
-
end
|
16
|
-
|
17
|
-
def submit(access_type, access_name)
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
1
|
+
require_relative 'required_files'
|
2
|
+
|
3
|
+
|
4
|
+
def click(access_type, access_name)
|
5
|
+
$driver.find_element(:"#{access_type}" => "#{access_name}").click
|
6
|
+
end
|
7
|
+
|
8
|
+
def click_forcefully(access_type, access_name)
|
9
|
+
$driver.execute_script('arguments[0].click();', $driver.find_element(:"#{access_type}" => "#{access_name}"))
|
10
|
+
end
|
11
|
+
|
12
|
+
def double_click(access_type, access_value)
|
13
|
+
element = $driver.find_element(:"#{access_type}" => "#{access_value}")
|
14
|
+
$driver.action.double_click(element).perform
|
15
|
+
end
|
16
|
+
|
17
|
+
def submit(access_type, access_name)
|
18
|
+
$driver.find_element(:"#{access_type}" => "#{access_name}").submit
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
@@ -1,35 +1,35 @@
|
|
1
|
-
require_relative 'required_files'
|
2
|
-
|
3
|
-
# method to print configuration
|
4
|
-
def print_congifugartion
|
5
|
-
puts ''
|
6
|
-
puts "Date : #{Time.now.strftime("%d-%B-%Y")}"
|
7
|
-
puts "Time : #{Time.now.strftime("%I:%M:%S:%p")}"
|
8
|
-
|
9
|
-
if $platform == 'android' or $platform == 'ios'
|
10
|
-
print_mobile_configuration
|
11
|
-
else
|
12
|
-
print_desktop_configuration
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# method to print desktop configuration
|
17
|
-
def print_desktop_configuration
|
18
|
-
puts 'Platform : ' + $driver.capabilities.platform.to_s.upcase
|
19
|
-
puts 'Browser : ' + $driver.capabilities.browser_name.to_s.upcase + " " + $driver.capabilities.version.to_s
|
20
|
-
puts ''
|
21
|
-
end
|
22
|
-
|
23
|
-
# method to print mobile configuration
|
24
|
-
def print_mobile_configuration
|
25
|
-
puts "Platform : #{$platform.upcase}"
|
26
|
-
puts "OS version : #{$os_version}"
|
27
|
-
puts "Device : #{$device_name}"
|
28
|
-
|
29
|
-
if $app_path.nil?
|
30
|
-
puts 'Browser : ' + $driver.capabilities.browser_name.to_s.upcase + " " + $driver.capabilities.version.to_s
|
31
|
-
else
|
32
|
-
puts "App Tested : #{$app_path}"
|
33
|
-
end
|
34
|
-
puts ''
|
35
|
-
end
|
1
|
+
require_relative 'required_files'
|
2
|
+
|
3
|
+
# method to print configuration
|
4
|
+
def print_congifugartion
|
5
|
+
puts ''
|
6
|
+
puts "Date : #{Time.now.strftime("%d-%B-%Y")}"
|
7
|
+
puts "Time : #{Time.now.strftime("%I:%M:%S:%p")}"
|
8
|
+
|
9
|
+
if $platform == 'android' or $platform == 'ios'
|
10
|
+
print_mobile_configuration
|
11
|
+
else
|
12
|
+
print_desktop_configuration
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# method to print desktop configuration
|
17
|
+
def print_desktop_configuration
|
18
|
+
puts 'Platform : ' + $driver.capabilities.platform.to_s.upcase
|
19
|
+
puts 'Browser : ' + $driver.capabilities.browser_name.to_s.upcase + " " + $driver.capabilities.version.to_s
|
20
|
+
puts ''
|
21
|
+
end
|
22
|
+
|
23
|
+
# method to print mobile configuration
|
24
|
+
def print_mobile_configuration
|
25
|
+
puts "Platform : #{$platform.upcase}"
|
26
|
+
puts "OS version : #{$os_version}"
|
27
|
+
puts "Device : #{$device_name}"
|
28
|
+
|
29
|
+
if $app_path.nil?
|
30
|
+
puts 'Browser : ' + $driver.capabilities.browser_name.to_s.upcase + " " + $driver.capabilities.version.to_s
|
31
|
+
else
|
32
|
+
puts "App Tested : #{$app_path}"
|
33
|
+
end
|
34
|
+
puts ''
|
35
|
+
end
|
@@ -1,87 +1,87 @@
|
|
1
|
-
# Error handling methods
|
2
|
-
|
3
|
-
# Method to check browser type
|
4
|
-
def validate_parameters(platform, browser_type, app_path)
|
5
|
-
if platform == 'desktop'
|
6
|
-
if !%w(ff ie chrome safari opera).include? browser_type
|
7
|
-
print_error_desktop
|
8
|
-
end
|
9
|
-
elsif platform == 'android'
|
10
|
-
print_error_android browser_type, app_path
|
11
|
-
elsif platform == 'iOS'
|
12
|
-
puts "Not Implemented..."
|
13
|
-
# print_error_ios browser_type, app_path
|
14
|
-
else
|
15
|
-
print_invalid_platform
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
# print error for desktop
|
20
|
-
def print_error_desktop
|
21
|
-
puts "\nInappropraite desktop browser : \"#{ENV['BROWSER']}\""
|
22
|
-
puts "\nUsage : cucumber BROWSER=browser_name"
|
23
|
-
puts "\nBrowser Supported :\n"
|
24
|
-
puts "\n1.ie\n2.chrome\n3.ff\n4.safari\n5.opera"
|
25
|
-
Process.exit(0)
|
26
|
-
end
|
27
|
-
|
28
|
-
# print error for android
|
29
|
-
def print_error_android(browser_type, app_path)
|
30
|
-
if browser_type=='ff' and app_path==nil
|
31
|
-
puts "\nOops... not mentioned \"Browser\" or \"App path\""
|
32
|
-
print_error_android_app
|
33
|
-
print_error_android_web
|
34
|
-
Process.exit(0)
|
35
|
-
elsif browser_type!='ff' and !%w(native chrome).include? browser_type
|
36
|
-
puts "\nOops... not supported browser"
|
37
|
-
print_error_android_web
|
38
|
-
Process.exit(0)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# print error for android app
|
43
|
-
def print_error_android_app
|
44
|
-
puts "\nTo run test on android app"
|
45
|
-
puts "\n Usage : cucumber PLATFORM=android APP_PATH=path/to/app"
|
46
|
-
end
|
47
|
-
|
48
|
-
# print error for android web
|
49
|
-
def print_error_android_web
|
50
|
-
puts "\nTo run test on android mobile web"
|
51
|
-
puts "\n Usage : cucumber PLATFORM=android BROWSER=browser_name"
|
52
|
-
puts "\n Supported browsers are \"chrome\" and \"native\""
|
53
|
-
end
|
54
|
-
|
55
|
-
# print error for ios
|
56
|
-
def print_error_ios
|
57
|
-
if browser_type=='ff' and app_path==nil
|
58
|
-
puts "\nOops... not mentioned \"Browser\" or \"App path\""
|
59
|
-
print_error_ios_app
|
60
|
-
print_error_ios_web
|
61
|
-
Process.exit(0)
|
62
|
-
elsif browser_type!='safari'
|
63
|
-
puts "\nOops... not supported browser"
|
64
|
-
print_error_ios_app_web
|
65
|
-
Process.exit(0)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# print error for ios app
|
70
|
-
def print_error_ios_app
|
71
|
-
puts "\nTo run test on iOS App"
|
72
|
-
puts "\n Usage : cucumber PLATFORM=iOS APP_PATH=path/to/app"
|
73
|
-
end
|
74
|
-
|
75
|
-
# print error for ios web
|
76
|
-
def print_error_ios_web
|
77
|
-
puts "\nTo run test on iOS mobile web"
|
78
|
-
puts "\n Usage : cucumber PLATFORM=iOS BROWSER=safari"
|
79
|
-
end
|
80
|
-
|
81
|
-
# print error if invalid platform
|
82
|
-
def print_invalid_platform
|
83
|
-
puts "\nOops... Invalid Platform"
|
84
|
-
puts "\nSupported platform are \"android\" and \"iOS\"."
|
85
|
-
puts "\nTo run on Desktop no need to mention platform."
|
86
|
-
Process.exit(0)
|
1
|
+
# Error handling methods
|
2
|
+
|
3
|
+
# Method to check browser type
|
4
|
+
def validate_parameters(platform, browser_type, app_path)
|
5
|
+
if platform == 'desktop'
|
6
|
+
if !%w(ff ie chrome safari opera).include? browser_type
|
7
|
+
print_error_desktop
|
8
|
+
end
|
9
|
+
elsif platform == 'android'
|
10
|
+
print_error_android browser_type, app_path
|
11
|
+
elsif platform == 'iOS'
|
12
|
+
puts "Not Implemented..."
|
13
|
+
# print_error_ios browser_type, app_path
|
14
|
+
else
|
15
|
+
print_invalid_platform
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# print error for desktop
|
20
|
+
def print_error_desktop
|
21
|
+
puts "\nInappropraite desktop browser : \"#{ENV['BROWSER']}\""
|
22
|
+
puts "\nUsage : cucumber BROWSER=browser_name"
|
23
|
+
puts "\nBrowser Supported :\n"
|
24
|
+
puts "\n1.ie\n2.chrome\n3.ff\n4.safari\n5.opera"
|
25
|
+
Process.exit(0)
|
26
|
+
end
|
27
|
+
|
28
|
+
# print error for android
|
29
|
+
def print_error_android(browser_type, app_path)
|
30
|
+
if browser_type=='ff' and app_path==nil
|
31
|
+
puts "\nOops... not mentioned \"Browser\" or \"App path\""
|
32
|
+
print_error_android_app
|
33
|
+
print_error_android_web
|
34
|
+
Process.exit(0)
|
35
|
+
elsif browser_type!='ff' and !%w(native chrome).include? browser_type
|
36
|
+
puts "\nOops... not supported browser"
|
37
|
+
print_error_android_web
|
38
|
+
Process.exit(0)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# print error for android app
|
43
|
+
def print_error_android_app
|
44
|
+
puts "\nTo run test on android app"
|
45
|
+
puts "\n Usage : cucumber PLATFORM=android APP_PATH=path/to/app"
|
46
|
+
end
|
47
|
+
|
48
|
+
# print error for android web
|
49
|
+
def print_error_android_web
|
50
|
+
puts "\nTo run test on android mobile web"
|
51
|
+
puts "\n Usage : cucumber PLATFORM=android BROWSER=browser_name"
|
52
|
+
puts "\n Supported browsers are \"chrome\" and \"native\""
|
53
|
+
end
|
54
|
+
|
55
|
+
# print error for ios
|
56
|
+
def print_error_ios
|
57
|
+
if browser_type=='ff' and app_path==nil
|
58
|
+
puts "\nOops... not mentioned \"Browser\" or \"App path\""
|
59
|
+
print_error_ios_app
|
60
|
+
print_error_ios_web
|
61
|
+
Process.exit(0)
|
62
|
+
elsif browser_type!='safari'
|
63
|
+
puts "\nOops... not supported browser"
|
64
|
+
print_error_ios_app_web
|
65
|
+
Process.exit(0)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# print error for ios app
|
70
|
+
def print_error_ios_app
|
71
|
+
puts "\nTo run test on iOS App"
|
72
|
+
puts "\n Usage : cucumber PLATFORM=iOS APP_PATH=path/to/app"
|
73
|
+
end
|
74
|
+
|
75
|
+
# print error for ios web
|
76
|
+
def print_error_ios_web
|
77
|
+
puts "\nTo run test on iOS mobile web"
|
78
|
+
puts "\n Usage : cucumber PLATFORM=iOS BROWSER=safari"
|
79
|
+
end
|
80
|
+
|
81
|
+
# print error if invalid platform
|
82
|
+
def print_invalid_platform
|
83
|
+
puts "\nOops... Invalid Platform"
|
84
|
+
puts "\nSupported platform are \"android\" and \"iOS\"."
|
85
|
+
puts "\nTo run on Desktop no need to mention platform."
|
86
|
+
Process.exit(0)
|
87
87
|
end
|
@@ -1,67 +1,67 @@
|
|
1
|
-
require_relative 'required_files'
|
2
|
-
|
3
|
-
# method to enter text into textfield
|
4
|
-
def enter_text(access_type, text, access_name)
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
# method to clear text from textfield
|
9
|
-
def clear_text(access_type, access_name)
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
# method to select option from dropdwon list
|
14
|
-
def select_option_from_dropdown(access_type, by, option, access_name)
|
15
|
-
dropdown =
|
16
|
-
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
17
|
-
select_list.select_by(:"#{by}", "#{option}")
|
18
|
-
end
|
19
|
-
|
20
|
-
# method to select all option from dropdwon list
|
21
|
-
def select_all_option_from_multiselect_dropdown(access_type, access_name)
|
22
|
-
dropdown =
|
23
|
-
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
24
|
-
select_list.select_all
|
25
|
-
end
|
26
|
-
|
27
|
-
# method to unselect all option from dropdwon list
|
28
|
-
def unselect_all_option_from_multiselect_dropdown(access_type, access_name)
|
29
|
-
dropdown =
|
30
|
-
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
31
|
-
select_list.deselect_all
|
32
|
-
end
|
33
|
-
|
34
|
-
# method to check checkbox
|
35
|
-
def check_checkbox(access_type, access_name)
|
36
|
-
checkbox =
|
37
|
-
checkbox.click unless checkbox.selected?
|
38
|
-
end
|
39
|
-
|
40
|
-
# method to uncheck checkbox
|
41
|
-
def uncheck_checkbox(access_type, access_name)
|
42
|
-
checkbox =
|
43
|
-
|
44
|
-
if checkbox.selected?
|
45
|
-
checkbox.click
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
# method to select radio button
|
50
|
-
def toggle_checkbox(access_type, access_name)
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
# method to select radio button
|
55
|
-
def select_radio_button(access_type, access_name)
|
56
|
-
radio_button =
|
57
|
-
radio_button.click unless radio_button.selected?
|
58
|
-
end
|
59
|
-
|
60
|
-
# method to select option from radio button group
|
61
|
-
def select_option_from_radio_button_group(access_type, by, option, access_name)
|
62
|
-
radio_button_group =
|
63
|
-
|
64
|
-
getter = ->(rb, by) { by == 'value' ? rb.attribute('value') : rb.text }
|
65
|
-
ele = radio_button_group.find { |rb| getter.call(rb, by) == option }
|
66
|
-
ele.click unless ele.selected?
|
67
|
-
end
|
1
|
+
require_relative 'required_files'
|
2
|
+
|
3
|
+
# method to enter text into textfield
|
4
|
+
def enter_text(access_type, text, access_name)
|
5
|
+
$driver.find_element(:"#{access_type}" => "#{access_name}").send_keys text
|
6
|
+
end
|
7
|
+
|
8
|
+
# method to clear text from textfield
|
9
|
+
def clear_text(access_type, access_name)
|
10
|
+
$driver.find_element(:"#{access_type}" => "#{access_name}").clear
|
11
|
+
end
|
12
|
+
|
13
|
+
# method to select option from dropdwon list
|
14
|
+
def select_option_from_dropdown(access_type, by, option, access_name)
|
15
|
+
dropdown = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
16
|
+
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
17
|
+
select_list.select_by(:"#{by}", "#{option}")
|
18
|
+
end
|
19
|
+
|
20
|
+
# method to select all option from dropdwon list
|
21
|
+
def select_all_option_from_multiselect_dropdown(access_type, access_name)
|
22
|
+
dropdown = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
23
|
+
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
24
|
+
select_list.select_all
|
25
|
+
end
|
26
|
+
|
27
|
+
# method to unselect all option from dropdwon list
|
28
|
+
def unselect_all_option_from_multiselect_dropdown(access_type, access_name)
|
29
|
+
dropdown = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
30
|
+
select_list = Selenium::WebDriver::Support::Select.new(dropdown)
|
31
|
+
select_list.deselect_all
|
32
|
+
end
|
33
|
+
|
34
|
+
# method to check checkbox
|
35
|
+
def check_checkbox(access_type, access_name)
|
36
|
+
checkbox = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
37
|
+
checkbox.click unless checkbox.selected?
|
38
|
+
end
|
39
|
+
|
40
|
+
# method to uncheck checkbox
|
41
|
+
def uncheck_checkbox(access_type, access_name)
|
42
|
+
checkbox = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
43
|
+
|
44
|
+
if checkbox.selected?
|
45
|
+
checkbox.click
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# method to select radio button
|
50
|
+
def toggle_checkbox(access_type, access_name)
|
51
|
+
$driver.find_element(:"#{access_type}" => "#{access_name}").click
|
52
|
+
end
|
53
|
+
|
54
|
+
# method to select radio button
|
55
|
+
def select_radio_button(access_type, access_name)
|
56
|
+
radio_button = $driver.find_element(:"#{access_type}" => "#{access_name}")
|
57
|
+
radio_button.click unless radio_button.selected?
|
58
|
+
end
|
59
|
+
|
60
|
+
# method to select option from radio button group
|
61
|
+
def select_option_from_radio_button_group(access_type, by, option, access_name)
|
62
|
+
radio_button_group = $driver.find_elements(:"#{access_type}" => "#{access_name}")
|
63
|
+
|
64
|
+
getter = ->(rb, by) { by == 'value' ? rb.attribute('value') : rb.text }
|
65
|
+
ele = radio_button_group.find { |rb| getter.call(rb, by) == option }
|
66
|
+
ele.click unless ele.selected?
|
67
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require_relative 'required_files'
|
2
|
-
|
3
|
-
def handle_alert(decesion)
|
4
|
-
if decesion == 'accept'
|
5
|
-
$driver.switch_to.alert.accept
|
6
|
-
else
|
7
|
-
$driver.switch_to.alert.dismiss
|
8
|
-
end
|
9
|
-
end
|
1
|
+
require_relative 'required_files'
|
2
|
+
|
3
|
+
def handle_alert(decesion)
|
4
|
+
if decesion == 'accept'
|
5
|
+
$driver.switch_to.alert.accept
|
6
|
+
else
|
7
|
+
$driver.switch_to.alert.dismiss
|
8
|
+
end
|
9
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
|
-
|
2
|
-
# custome exception class
|
3
|
-
class TestCaseFailed < Exception
|
4
|
-
end
|
5
|
-
|
6
|
-
# WAIT instance for explicit wait
|
7
|
-
WAIT = Selenium::WebDriver::Wait.new(:timeout => 30)
|
8
|
-
|
9
|
-
# method to validate locator
|
10
|
-
def valid_locator_type? type
|
11
|
-
%w(id class css name xpath).include? type
|
12
|
-
end
|
13
|
-
|
14
|
-
def validate_locator type
|
15
|
-
raise "Invalid locator type - #{type}" unless valid_locator_type? type
|
16
|
-
end
|
17
|
-
|
18
|
-
# method to validate dropdown selector
|
19
|
-
def valid_option_by? option_by
|
20
|
-
%w(text value index).include? option_by
|
21
|
-
end
|
22
|
-
|
23
|
-
def validate_option_by option_by
|
24
|
-
raise "Invalid option by - #{option_by}" unless valid_option_by? option_by
|
25
|
-
end
|
26
|
-
|
27
|
-
# Return android device name and android version using adb command
|
28
|
-
def get_device_info
|
29
|
-
IO.popen('adb shell getprop ro.product.brand') { |f| $device = f.gets.chomp.upcase}
|
30
|
-
$device += ' '
|
31
|
-
IO.popen('adb shell getprop ro.product.model') { |f| $device += f.gets.chomp.upcase}
|
32
|
-
IO.popen('adb shell getprop ro.build.version.release') { |f| $os_version = f.gets.chomp.upcase}
|
33
|
-
return $device, $os_version
|
34
|
-
end
|
1
|
+
|
2
|
+
# custome exception class
|
3
|
+
class TestCaseFailed < Exception
|
4
|
+
end
|
5
|
+
|
6
|
+
# WAIT instance for explicit wait
|
7
|
+
WAIT = Selenium::WebDriver::Wait.new(:timeout => 30)
|
8
|
+
|
9
|
+
# method to validate locator
|
10
|
+
def valid_locator_type? type
|
11
|
+
%w(id class css name xpath).include? type
|
12
|
+
end
|
13
|
+
|
14
|
+
def validate_locator type
|
15
|
+
raise "Invalid locator type - #{type}" unless valid_locator_type? type
|
16
|
+
end
|
17
|
+
|
18
|
+
# method to validate dropdown selector
|
19
|
+
def valid_option_by? option_by
|
20
|
+
%w(text value index).include? option_by
|
21
|
+
end
|
22
|
+
|
23
|
+
def validate_option_by option_by
|
24
|
+
raise "Invalid option by - #{option_by}" unless valid_option_by? option_by
|
25
|
+
end
|
26
|
+
|
27
|
+
# Return android device name and android version using adb command
|
28
|
+
def get_device_info
|
29
|
+
IO.popen('adb shell getprop ro.product.brand') { |f| $device = f.gets.chomp.upcase}
|
30
|
+
$device += ' '
|
31
|
+
IO.popen('adb shell getprop ro.product.model') { |f| $device += f.gets.chomp.upcase}
|
32
|
+
IO.popen('adb shell getprop ro.build.version.release') { |f| $os_version = f.gets.chomp.upcase}
|
33
|
+
return $device, $os_version
|
34
|
+
end
|