itms_automation 2.6.4 → 2.6.5

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.
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