itms_automation 2.6.4 → 2.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30a810fadeedd85c66be2487e85f27f592ba294587aae14e2cd76f88bb3bebe3
4
- data.tar.gz: f571985b3f188a311c31fffdc572eb48eb2df8bb4a5052a57363f0099489e50d
3
+ metadata.gz: 820fb5217d32c1f0f5e163b5369551bf927f687dc9668fd1e5207ead1e29faed
4
+ data.tar.gz: 3192e486053d8e5e7df07364c86f47228141863b4203a370f6a2e54c251b96b6
5
5
  SHA512:
6
- metadata.gz: 6ab5441cff00f45a7fa1d336512374680ffa4e241a7dea3b53c1a6755e12f570fcf509182287e7c5d9fe6d358853c35119dd675b6bdb9c1a8d75fc6775bb70e1
7
- data.tar.gz: a22c540ada6ef13902b7e8a4e0beda12892c27f88b381e7ba6229a563f7419c9f18e3d12a8e2a5f866e4e65698b4f10e73645697e79984c73d7177180fc8c005
6
+ metadata.gz: 55bec109db3caf3a3d6d09244f72fc5a4a75e590ad3fbb43bcfad7ea58e355f7bcebe99f91bb9c53ac1138c85a8b7914754a94387592d9640ea7038751b6ef2b
7
+ data.tar.gz: f1806fe2289e9547e6f741fd0642aa021e47f7c9c0d238251967f020c5b860d9fb8d29a60acf9415ef04c147fed11126309f11c416818c20651854cf6fe9af6c
@@ -0,0 +1,63 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ appium_lib_core (3.10.1)
5
+ faye-websocket (~> 0.10.0)
6
+ selenium-webdriver (~> 3.14, >= 3.14.1)
7
+ backports (3.18.1)
8
+ builder (3.2.4)
9
+ childprocess (3.0.0)
10
+ cucumber (3.1.2)
11
+ builder (>= 2.1.2)
12
+ cucumber-core (~> 3.2.0)
13
+ cucumber-expressions (~> 6.0.1)
14
+ cucumber-wire (~> 0.0.1)
15
+ diff-lcs (~> 1.3)
16
+ gherkin (~> 5.1.0)
17
+ multi_json (>= 1.7.5, < 2.0)
18
+ multi_test (>= 0.1.2)
19
+ cucumber-core (3.2.1)
20
+ backports (>= 3.8.0)
21
+ cucumber-tag_expressions (~> 1.1.0)
22
+ gherkin (~> 5.0)
23
+ cucumber-expressions (6.0.1)
24
+ cucumber-tag_expressions (1.1.1)
25
+ cucumber-wire (0.0.1)
26
+ diff-lcs (1.4.4)
27
+ eventmachine (1.2.7)
28
+ faye-websocket (0.10.9)
29
+ eventmachine (>= 0.12.0)
30
+ websocket-driver (>= 0.5.1)
31
+ gherkin (5.1.0)
32
+ httparty (0.13.7)
33
+ json (~> 1.8)
34
+ multi_xml (>= 0.5.2)
35
+ itms_automation (2.6.1)
36
+ appium_lib_core (~> 3.10.1, >= 3.10.1)
37
+ cucumber (~> 3.1.2, >= 3.1.2)
38
+ httparty (~> 0.13.7, >= 0.13.7)
39
+ report_builder (~> 1.8, >= 1.8)
40
+ selenium-webdriver (~> 3.14, >= 3.14.1)
41
+ json (1.8.6)
42
+ multi_json (1.14.1)
43
+ multi_test (0.1.2)
44
+ multi_xml (0.6.0)
45
+ report_builder (1.8)
46
+ json (>= 1.8.1)
47
+ rubyzip (2.3.0)
48
+ selenium-webdriver (3.142.7)
49
+ childprocess (>= 0.5, < 4.0)
50
+ rubyzip (>= 1.2.2)
51
+ websocket-driver (0.7.2)
52
+ websocket-extensions (>= 0.1.0)
53
+ websocket-extensions (0.1.5)
54
+
55
+ PLATFORMS
56
+ ruby
57
+
58
+ DEPENDENCIES
59
+ itms_automation
60
+ report_builder
61
+
62
+ BUNDLED WITH
63
+ 2.0.2
@@ -17,102 +17,164 @@ Note : For some of the API paramtere values are fixed. Such values for paramater
17
17
 
18
18
  Navigation API's
19
19
  ----------------
20
-
20
+ # method to open link
21
21
  navigate_to("link")
22
-
22
+ # method to navigate back & forward
23
23
  navigate(direction) # direction => "back" / "forward"
24
-
24
+ # method to quite webdriver instance
25
25
  close_driver()
26
-
27
-
28
- Browser Interaction API's
29
- -------------------------
30
-
31
- resize_browser(width, height)
32
-
33
- scroll_page(to) # to => "top" / "end"
34
-
35
- scroll_to_element(by, access_value)
36
-
37
- zoom_in_out(in_out) # in_out => "add" / "subtract"
38
-
39
- zoom_in_out_till_element_display(by, in_out, access_value) # in_out => "add" / "subtract"
40
-
26
+ # method to return key by os wise
27
+ get_key()
28
+ # Method to zoom in/out page
29
+ zoom_in_out(in_out) # in_out => "in" / "out"
30
+ # Method to zoom in/out web page until web element dislays
31
+ zoom_in_out_till_element_display(element, in_out)
32
+ # Method to resize browser
33
+ resize_browser(width, heigth)
34
+ # Method to maximize browser
35
+ maximize_browser
36
+ # Method to refresh page
37
+ refresh_page
38
+ # Method to hover on element
39
+ hover_over_element(element)
40
+ # Method to scroll page to perticular element
41
+ scroll_to_element(element)
42
+ # method to scroll page to top or end
43
+ scroll_page(to)
44
+ # Method to switch to new window
45
+ switch_to_new_window
46
+ # Method to switch to old window
47
+ switch_to_old_window
48
+ # Method to close new window
49
+ close_new_window
41
50
 
42
51
  Input API's
43
- ------------
44
-
45
- click(element)
46
-
47
- double_click(element)
48
-
49
- click_forcefully(element)
52
+ -------------------------
50
53
 
54
+ # method to enter text into textfield
51
55
  enter_text(element, text)
52
-
56
+ # method to clear text from textfield
53
57
  clear_text(element)
54
-
58
+ # method to select option from dropdwon list
59
+ select_option_from_dropdown(element, by, option)
60
+ # method to select all option from dropdwon list
61
+ select_all_option_from_multiselect_dropdown(element)
62
+ # method to unselect all option from dropdwon list
63
+ unselect_all_option_from_multiselect_dropdown(element)
64
+ # method to check checkbox
55
65
  check_checkbox(element)
56
-
66
+ # method to uncheck checkbox
57
67
  uncheck_checkbox(element)
58
-
68
+ # method to select radio button
59
69
  toggle_checkbox(element)
60
-
70
+ # method to select radio button
61
71
  select_radio_button(element)
72
+ # method to select option from radio button group
73
+ select_option_from_radio_button_group(element, by, option)
62
74
 
63
- get_page_title()
64
-
65
- get_element_text(element)
66
-
67
- get_element_attribute(element, attribute)
68
-
69
- is_element_enabled(element)
70
-
71
- is_element_displayed(element)
72
-
73
- hover_over_element(element)
74
-
75
- by => "locators type" ("id", "name", "class", "xpath", "css")
76
-
77
- access_value => "locator value"
78
-
75
+ Click API's
76
+ ------------
77
+ # method to click on an element
78
+ click(element)
79
+ # method to double-click on an element
80
+ double_click(element)
81
+ # method to forcefully click on an element
82
+ click_forcefully(element)
79
83
 
80
84
  Javascript Handling API
81
85
  -----------------------
82
-
86
+ # method to interact with alert
83
87
  handle_alert(decision) # decision => "accept" / "dismiss"
84
88
 
85
- get_alert_text
86
-
87
-
88
89
  Progress API's
89
90
  --------------
90
-
91
+ # method to wait with second
91
92
  wait(time_in_sec)
92
-
93
+ # method to wait for the element display
93
94
  wait_for_element_to_display(element, duration)
94
-
95
+ # method to wait for the element enable
95
96
  wait_for_element_to_enable(element, duration)
96
97
 
97
-
98
- by => "locators type" ("id", "name", "class", "xpath", "css")
99
-
100
- access_value => "locator value"
101
-
102
- duration => duration in seconds.
103
-
104
-
105
- Screenshot API
98
+ Screenshot API's
106
99
  --------------
100
+ # method to take screenshot and save in screenshot folder
107
101
  take_screenshots
108
102
 
109
-
110
- Configuration API
103
+ Configuration API's
111
104
  -----------------
112
-
105
+ # method to print configuration
113
106
  print_congifugartion
107
+ # method to print desktop configuration
108
+ print_desktop_configuration
109
+ # method to print mobile configuration
110
+ print_mobile_configuration
114
111
 
115
-
112
+ Assertion API's
113
+ -----------------
114
+ # Method to return page title
115
+ get_page_title
116
+ # Method to verify title
117
+ # param 1 : String : expected title
118
+ # param 2 : Boolean : test case [true or flase]
119
+ check_title(title, test_case)
120
+ # Method to verify partial title
121
+ # param 1 : String : partial title string
122
+ # param 2 : Boolean : test case [true or flase]
123
+ check_partial_title(partial_text_title, test_case)
124
+ # Method to get element text
125
+ # param : String
126
+ get_element_text(element)
127
+ # Method to check element text
128
+ # param 1 : String : Element
129
+ # param 2 : String : Expected element text
130
+ # param 3 : Boolean : test case [true or flase]
131
+ check_element_text(element, expected_value, test_case)
132
+ # Method to check partial element text
133
+ # param 1 : String : Element
134
+ # param 2 : String : Expected element partial text
135
+ # param 3 : Boolean : test case [true or flase]
136
+ check_element_partial_text(element, expected_value, test_case)
137
+ # Method to return element status - enabled?
138
+ # param : String : Element
139
+ is_element_enabled(element)
140
+ # method to check element status - enabled?
141
+ # param 1 : String : Element
142
+ # param 2 : Boolean : test case [true or flase]
143
+ check_element_enable(element, test_case)
144
+ # method to get attribute value
145
+ # param 1 : String : Element
146
+ # param 2 : String : atrribute name
147
+ get_element_attribute(element, attribute_name)
148
+ # method to check attribute value
149
+ # param 1 : String : Element
150
+ # param 2 : String : atrribute name
151
+ # param 3 : String : atrribute value
152
+ # param 4 : Boolean : test case [true or flase]
153
+ check_element_attribute(element, attribute_name, attribute_value, test_case)
154
+ # method to get element status - displayed?
155
+ # param : String : Element
156
+ is_element_displayed(element)
157
+ # method to check element presence
158
+ # param 1 : String : Element
159
+ # param 2 : Boolean : test case [true or flase]
160
+ check_element_presence(element, test_case)
161
+ # method to assert checkbox check/uncheck
162
+ # param 1 : String : Element
163
+ # param 2 : Boolean : test case [true or flase]
164
+ is_checkbox_checked(element, should_be_checked = true)
165
+ # method to assert radio button selected/unselected
166
+ # param 1 : String : Element
167
+ # param 2 : Boolean : test case [true or flase]
168
+ is_radio_button_selected(element, should_be_selected = true)
169
+ # method to assert option from radio button group is selected/unselected
170
+ is_option_from_radio_button_group_selected(element, by, option, should_be_selected = true)
171
+ # method to get javascript pop-up alert text
172
+ get_alert_text
173
+ # method to check javascript pop-up alert text
174
+ check_alert_text(text)
175
+ # method to check dropdown status -> selected
176
+ is_option_from_dropdown_selected(element, by, option, should_be_selected=true)
177
+
116
178
  Usage: itms_automation <command-name> [parameters] [options]
117
179
 
118
180
  <command-name> can be one of
@@ -1,10 +1,10 @@
1
- Feature: Addition
2
- As a math idiot
3
- In order to not feel silly
4
- I add two numbers
1
+ # Feature: Addition
2
+ # As a math idiot
3
+ # In order to not feel silly
4
+ # I add two numbers
5
5
 
6
- Scenario: Adding a and b
7
- Given I have variable a
8
- And I have variable b
9
- When I add a and b
10
- Then I display the sum
6
+ # Scenario: Adding a and b
7
+ # Given I have variable a
8
+ # And I have variable b
9
+ # When I add a and b
10
+ # Then I display the sum
@@ -0,0 +1,69 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # # page title checking
6
+ # Then(/^I should\s*((?:not)?)\s+see page title as "(.*?)"$/) do |present, title|
7
+ # check_title(title, present.empty?)
8
+ # end
9
+
10
+ # Then(/^I should\s*((?:not)?)\s+see page title having partial text as "(.*?)"$/) do |present, partial_text_title|
11
+ # check_partial_title(partial_text_title, present.empty?)
12
+ # end
13
+
14
+ # # step to check element text
15
+ # Then(/^element "([^\"]*)" should\s*((?:not)?)\s+have text as "(.*?)"$/) do |element, present, value |
16
+ # check_element_text(element, value, present.empty?)
17
+ # end
18
+
19
+ # # step to check element partial text
20
+ # Then(/^element "([^\"]*)" should\s*((?:not)?)\s+have partial text as "(.*?)"$/) do |element, present, value |
21
+ # check_element_partial_text(element, value, present.empty?)
22
+ # end
23
+
24
+ # # step to check attribute value
25
+ # Then(/^element "([^\"]*)" should\s*((?:not)?)\s+have attribute "(.*?)" with value "(.*?)"$/) do |element, present, attrb, value|
26
+ # check_element_attribute(element, attrb, value, present.empty?)
27
+ # end
28
+
29
+ # # step to check element enabled or not
30
+ # Then(/^element "([^\"]*)" should\s*((?:not)?)\s+be (enabled|disabled)$/) do |element, present, state|
31
+ # flag = state == 'enabled'
32
+ # flag = !flag unless present.empty?
33
+ # check_element_enable(element, flag)
34
+ # end
35
+
36
+ # # step to check element present or not
37
+ # Then(/^element "(.*?)" should\s*((?:not)?)\s+be present$/) do |element, present|
38
+ # check_element_presence(element, present.empty?)
39
+ # end
40
+
41
+ # # step to assert checkbox is checked or unchecked
42
+ # Then(/^checkbox "(.*?)" should be (checked|unchecked)$/) do |element, state|
43
+ # flag = state == 'checked'
44
+ # is_checkbox_checked(element, flag)
45
+ # end
46
+
47
+ # # steps to assert radio button checked or unchecked
48
+ # Then(/^radio button"(.*?)" should be (selected|unselected)$/) do |element, state|
49
+ # flag = state == 'selected'
50
+ # is_radio_button_selected(element, flag)
51
+ # end
52
+
53
+ # # steps to assert option by text from radio button group selected/unselected
54
+ # Then(/^option "(.*?)" by (.+) from radio button group "(.*?)" should be (selected|unselected)$/) do |option, attrb, element, state|
55
+ # flag = state == 'selected'
56
+ # is_option_from_radio_button_group_selected(element, attrb, option, flag)
57
+ # end
58
+
59
+ # # step to assert javascript pop-up alert text
60
+ # Then(/^I should see alert text as "(.*?)"$/) do |actual_value|
61
+ # check_alert_text(actual_value)
62
+ # end
63
+
64
+ # # step to assert dropdown list
65
+ # Then(/^option "(.*?)" by (.+) from dropdown "(.*?)" should be (selected|unselected)$/) do |option, by, element, state|
66
+ # flag = state == 'selected'
67
+ # is_option_from_dropdown_selected(element, by, option, state)
68
+ # end
69
+
@@ -0,0 +1,25 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # # click on web element
6
+ # When(/^I click on element"(.*?)"$/) do |element|
7
+ # click(element)
8
+ # end
9
+
10
+ # Then(/^I forcefully click on element "(.*?)"$/) do |element|
11
+ # click_forcefully(element)
12
+ # end
13
+
14
+ # # double click on web element
15
+ # Then(/^I double click on element "(.*?)"$/) do |element|
16
+ # double_click(element)
17
+ # end
18
+
19
+ # When(/^I tap on element"(.*?)"$/) do |element|
20
+ # click(element)
21
+ # end
22
+
23
+ # Then(/^I long press on element "(.*?)"$/) do |element|
24
+ # long_press(element, duration)
25
+ # end
@@ -0,0 +1,8 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # # step to print configuration
6
+ # Then(/^I print configuration$/) do
7
+ # print_congifugartion
8
+ # end
@@ -0,0 +1,60 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # # enter text into input field steps
6
+ # Then(/^I enter "([^\"]*)" into element "(.*?)"$/) do |text, element|
7
+ # enter_text(type, element)
8
+ # end
9
+
10
+ # # clear input field steps
11
+ # Then(/^I clear input element "(.*?)"$/) do |type, element|
12
+ # clear_text(type, element)
13
+ # end
14
+
15
+ # # select option by text/value from dropdown/multiselect
16
+ # Then(/^I select "(.*?)" option by (.+) from\s*((?:multiselect)?)\sdropdown "(.*?)"$/) do |option, option_by, present, element|
17
+ # validate_option_by option_by
18
+ # select_option_from_dropdown(element, option_by, option)
19
+ # end
20
+
21
+ # # select option by index from dropdown/multiselect
22
+ # Then(/^I select (\d+) option by index from\s*((?:multiselect)?)\sdropdown "(.*?)"$/) do |option, present, element|
23
+ # select_option_from_dropdown(element, 'index', (option.to_i) -1)
24
+ # end
25
+
26
+ # # step to select option from mutliselect dropdown list
27
+ # Then(/^I select all options from multiselect dropdown "(.*?)"$/) do |element|
28
+ # select_all_option_from_multiselect_dropdown(element)
29
+ # end
30
+
31
+ # # step to unselect option from mutliselect dropdown list
32
+ # Then(/^I unselect all options from multiselect dropdown "(.*?)"$/) do |element|
33
+ # unselect_all_option_from_multiselect_dropdown(element)
34
+ # end
35
+
36
+ # # check checkbox steps
37
+ # Then(/^I check the checkbox "(.*?)"$/) do |element|
38
+ # check_checkbox(element)
39
+ # end
40
+
41
+ # # uncheck checkbox steps
42
+ # Then(/^I uncheck the checkbox "(.*?)"$/) do |element|
43
+ # uncheck_checkbox(element)
44
+ # end
45
+
46
+ # # steps to toggle checkbox
47
+ # Then(/^I toggle checkbox "(.*?)"$/) do |element|
48
+ # toggle_checkbox(element)
49
+ # end
50
+
51
+ # # step to select radio button
52
+ # Then(/^I select radio button "(.*?)"$/) do |element|
53
+ # select_radio_button(element)
54
+ # end
55
+
56
+ # # steps to select option by text from radio button group
57
+ # Then(/^I select "(.*?)" option by (.+) from radio button group "(.*?)"$/) do |option, option_by, element|
58
+ # validate_option_by option_by
59
+ # select_option_from_radio_button_group(element, option_by, option)
60
+ # end
@@ -0,0 +1,11 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # Then(/^I accept alert$/) do
6
+ # handle_alert('accept')
7
+ # end
8
+
9
+ # Then(/^I dismiss alert$/) do
10
+ # handle_alert('dismiss')
11
+ # end
@@ -0,0 +1,80 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # Then(/^I navigate to "([^\"]*)"$/)do |link|
6
+ # navigate_to(link)
7
+ # end
8
+
9
+ # Then(/^I navigate forward/) do
10
+ # navigate('forward')
11
+ # end
12
+
13
+ # Then(/^I navigate back/) do
14
+ # navigate('back')
15
+ # end
16
+
17
+ # Then(/^I close browser$/) do
18
+ # close_driver
19
+ # end
20
+
21
+ # # step to resize browser
22
+ # Then(/^I resize browser window size to width (\d+) and height (\d+)$/) do |width, heigth|
23
+ # resize_browser(width, heigth)
24
+ # end
25
+
26
+ # # step to maximize browser
27
+ # Then(/^I maximize browser window$/) do
28
+ # maximize_browser
29
+ # end
30
+
31
+ # # steps to refresh page
32
+ # Then(/^I refresh page$/) do
33
+ # refresh_page
34
+ # end
35
+
36
+ # Then(/^I switch to new window$/) do
37
+ # switch_to_new_window
38
+ # end
39
+
40
+ # Then(/^I switch to previous window$/) do
41
+ # switch_to_old_window
42
+ # end
43
+
44
+ # Then(/^I close new window$/) do
45
+ # close_new_window
46
+ # end
47
+
48
+ # # steps to scroll to element
49
+ # Then(/^I scroll to element "(.*?)"$/) do |type, element|
50
+ # scroll_to_element(type, element)
51
+ # end
52
+
53
+ # # steps to scroll web page to top or end
54
+ # Then(/^I scroll to (top|end) of page$/) do |to|
55
+ # scroll_page(to)
56
+ # end
57
+
58
+ # # step to hover over a element Note: Doesn't work on Windows firefox
59
+ # When(/^I hover over element having (.+) "(.*?)"$/) do |type, element|
60
+ # hover_over_element(type, element)
61
+ # end
62
+
63
+ # # steps to zoom in page
64
+ # Then(/^I zoom in page$/) do
65
+ # zoom_in_out('add')
66
+ # end
67
+
68
+ # # steps to zoom out page
69
+ # Then(/^I zoom out page$/) do
70
+ # zoom_in_out('subtract')
71
+ # end
72
+
73
+ # # steps to zoom out till element displays
74
+ # Then(/^I zoom out page till I see element "(.*?)"$/) do |type, element|
75
+ # zoom_in_out_till_element_display(type, 'subtract', element)
76
+ # end
77
+
78
+ # Then(/^I reset page view$/) do
79
+ # zoom_in_out('numpad0')
80
+ # end
@@ -0,0 +1,18 @@
1
+ # Do Not Remove This File
2
+ # Please adjust the below steps as your needed
3
+ # $driver is instance of webdriver use this instance to write your custom code
4
+
5
+ # # wait for specific period of time
6
+ # Then(/^I wait for (\d+) sec$/) do |time|
7
+ # wait(time)
8
+ # end
9
+
10
+ # # wait for specific element to display for specific period of time
11
+ # Then(/^I wait (\d+) seconds for element "(.*?)" to display$/) do |duration, element|
12
+ # wait_for_element_to_display(element, duration)
13
+ # end
14
+
15
+ # # wait for specific element to enable for specific period of time
16
+ # Then(/^I wait (\d+) seconds for element "(.*?)" to enable$/) do |duration, element|
17
+ # wait_for_element_to_enable(element, duration)
18
+ # end
@@ -73,32 +73,30 @@ if $platform == "android" or $platform == "iOS"
73
73
  else # else create driver instance for desktop browser
74
74
  begin
75
75
  $driver = case $browser_type
76
- when "chrome"
77
- Selenium::WebDriver.for(:chrome)
78
- when "safari"
79
- Selenium::WebDriver.for(:safari)
80
- when "internet_explorer"
81
- Selenium::WebDriver.for(:internet_explorer)
82
- when "chrome_headless"
83
- Selenium::WebDriver.for(:chrome, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: { args: %w(headless) }))
84
- when "remote"
85
- if ENV["SERVER_URL"].nil? || ENV["REMOTE_BROWSER"].nil?
86
- puts "\nMissing SERVER_URL : SERVER_URL=http://SERVER_URL:4444/wd/hub"
87
- puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
88
- Process.exit(0)
89
- else
90
- caps = Selenium::WebDriver::Remote::Capabilities.new
91
- caps["browserName"] = ENV["REMOTE_BROWSER"]
92
- caps["enableVNC"] = !ENV["ENABLE_VNC"].nil? && ENV["ENABLE_VNC"] == "true"
93
- caps["enableVideo"] = !ENV["ENABLE_VIDEO"].nil? && ENV["ENABLE_VIDEO"] == "true"
94
- caps["screenResolution"] = ENV["SCREEN_RESOLUTION"] unless ENV["SCREEN_RESOLUTION"].nil?
95
- caps["projectId"] = ENV["PROJECT_ID"] unless ENV["PROJECT_ID"].nil?
96
- caps["issueId"] = ENV["ISSUE_ID"] unless ENV["ISSUE_ID"].nil?
97
- Selenium::WebDriver.for(:remote, :url => ENV["SERVER_URL"], :desired_capabilities => caps)
98
- end
76
+ when "chrome"
77
+ Selenium::WebDriver.for(:chrome)
78
+ when "safari"
79
+ Selenium::WebDriver.for(:safari)
80
+ when "internet_explorer"
81
+ Selenium::WebDriver.for(:internet_explorer)
82
+ when "chrome_headless"
83
+ Selenium::WebDriver.for(:chrome, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: { args: %w(headless) }))
84
+ when "remote"
85
+ if ENV["SERVER_URL"].nil? || ENV["REMOTE_BROWSER"].nil?
86
+ puts "\nMissing SERVER_URL : SERVER_URL=http://SERVER_URL:4444/wd/hub"
87
+ puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
88
+ Process.exit(0)
99
89
  else
100
- Selenium::WebDriver.for(:firefox)
90
+ caps = Selenium::WebDriver::Remote::Capabilities.new
91
+ caps["browserName"] = ENV["REMOTE_BROWSER"]
92
+ caps["enableVNC"] = ENV["ENABLE_VNC"] if ENV["ENABLE_VNC"].present?
93
+ caps["enableVideo"] = ENV["ENABLE_VIDEO"] if ENV["ENABLE_VIDEO"].present?
94
+ caps["resolution"] = ENV["SCREEN_RESOLUTION"] if ENV["SCREEN_RESOLUTION"].present?
95
+ Selenium::WebDriver.for(:remote, :url => ENV["SERVER_URL"], :desired_capabilities => caps)
101
96
  end
97
+ else
98
+ Selenium::WebDriver.for(:firefox)
99
+ end
102
100
  $driver.manage().window().maximize()
103
101
  rescue Exception => e
104
102
  puts e.message
@@ -82,13 +82,13 @@ def check_element_partial_text(element, expected_value, test_case)
82
82
  end
83
83
  end
84
84
 
85
- # Method to return element status - enabled?
85
+ # method to return element status - enabled?
86
86
  # param : String : Element
87
87
  def is_element_enabled(element)
88
88
  WAIT.until{ find_object(element) }.enabled?
89
89
  end
90
90
 
91
- # Element enabled checking
91
+ # method to check element status - enabled?
92
92
  # param 1 : String : Element
93
93
  # param 2 : Boolean : test case [true or flase]
94
94
  def check_element_enable(element, test_case)
@@ -5,7 +5,7 @@ def navigate_to(link)
5
5
  $driver.get link
6
6
  end
7
7
 
8
- # method to navigate back & forword
8
+ # method to navigate back & forward
9
9
  def navigate(direction)
10
10
  if direction == 'back'
11
11
  $driver.navigate.back
@@ -36,7 +36,7 @@ def zoom_in_out(in_out)
36
36
  $driver.action.key_down(:"#{get_key}").send_keys(:"#{in_out}").key_up(:"#{get_key}").perform
37
37
  end
38
38
 
39
- # Method to zoom in/out web page until web element displyas
39
+ # Method to zoom in/out web page until web element dislays
40
40
  def zoom_in_out_till_element_display(element, in_out)
41
41
  while true
42
42
  if WAIT.until { find_object(element) }.displayed?
@@ -88,13 +88,11 @@ end
88
88
  $old_win = nil
89
89
 
90
90
  # Method to switch to new window
91
-
92
91
  def switch_to_new_window
93
92
  $old_win = $driver.window_handle
94
93
  $driver.switch_to.window($driver.window_handles[1])
95
94
  end
96
95
 
97
-
98
96
  # Method to switch to old window
99
97
  def switch_to_old_window
100
98
  $driver.switch_to.window($old_win)
@@ -1,5 +1,5 @@
1
1
  module ITMS
2
2
  module Automation
3
- VERSION = '2.6.4'
3
+ VERSION = '2.6.5'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itms_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.4
4
+ version: 2.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - INFOdation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-28 00:00:00.000000000 Z
11
+ date: 2020-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.1.2
20
- - - ">="
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 3.1.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.1.2
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.1.2
33
33
  - !ruby/object:Gem::Dependency
@@ -54,60 +54,60 @@ dependencies:
54
54
  name: appium_lib_core
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: 3.10.1
60
- - - ">="
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: 3.10.1
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "~>"
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: 3.10.1
70
- - - ">="
70
+ - - "~>"
71
71
  - !ruby/object:Gem::Version
72
72
  version: 3.10.1
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: httparty
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - "~>"
77
+ - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: 0.18.1
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.18.1
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.18.1
90
- - - ">="
90
+ - - "~>"
91
91
  - !ruby/object:Gem::Version
92
92
  version: 0.18.1
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: report_builder
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: '1.8'
100
- - - ">="
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '1.8'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '1.8'
110
- - - ">="
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: '1.8'
113
113
  description: Behavior driven development (BDD) approach to write automation test script
@@ -148,11 +148,18 @@ files:
148
148
  - example/desktop web/desktop_web_gmail_login/features/support/env.rb
149
149
  - example/desktop web/desktop_web_gmail_login/features/support/hooks.rb
150
150
  - features-skeleton/Gemfile
151
+ - features-skeleton/Gemfile.lock
151
152
  - features-skeleton/README.md
152
153
  - features-skeleton/cucumber.yml
153
154
  - features-skeleton/my_first.feature
154
155
  - features-skeleton/screenshots/test.png
155
- - features-skeleton/step_definitions/custom_steps.rb
156
+ - features-skeleton/step_definitions/assertion_steps.rb
157
+ - features-skeleton/step_definitions/click_elements_steps.rb
158
+ - features-skeleton/step_definitions/configuration_steps.rb
159
+ - features-skeleton/step_definitions/input_steps.rb
160
+ - features-skeleton/step_definitions/javascript_handling_steps.rb
161
+ - features-skeleton/step_definitions/navigation_steps.rb
162
+ - features-skeleton/step_definitions/progress_steps.rb
156
163
  - features-skeleton/step_definitions/repositories/project_object.yml
157
164
  - features-skeleton/support/env.rb
158
165
  - features-skeleton/support/hooks.rb
@@ -196,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
203
  - !ruby/object:Gem::Version
197
204
  version: '0'
198
205
  requirements: []
199
- rubygems_version: 3.1.2
206
+ rubygems_version: 3.0.6
200
207
  signing_key:
201
208
  specification_version: 4
202
209
  summary: SELENIUM WEBDRIVER WITH RUBY & CUCUMBER
@@ -1,5 +0,0 @@
1
- require 'itms_automation'
2
-
3
- # Do Not Remove This File
4
- # Add your custom steps here
5
- # $driver is instance of webdriver use this instance to write your custom code