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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/bin/generate.rb +19 -20
  3. data/bin/helper.rb +50 -50
  4. data/bin/selenium-cucumber +29 -30
  5. data/doc/canned_steps.md +656 -656
  6. data/doc/installation.md +16 -16
  7. data/doc/selenium-cucumber-API.md +120 -120
  8. data/doc/selenium-cucumber-help.md +18 -18
  9. data/features-skeleton/my_first.feature +5 -5
  10. data/features-skeleton/step_definitions/custom_steps.rb +4 -4
  11. data/features-skeleton/support/env.rb +51 -51
  12. data/features-skeleton/support/hooks.rb +47 -38
  13. data/lib/selenium-cucumber.rb +1 -1
  14. data/lib/selenium-cucumber/assertion_steps.rb +89 -89
  15. data/lib/selenium-cucumber/click_elements_steps.rb +36 -36
  16. data/lib/selenium-cucumber/configuration_steps.rb +6 -6
  17. data/lib/selenium-cucumber/input_steps.rb +69 -69
  18. data/lib/selenium-cucumber/javascript_handling_steps.rb +9 -9
  19. data/lib/selenium-cucumber/methods/assertion_methods.rb +295 -344
  20. data/lib/selenium-cucumber/methods/click_elements_methods.rb +23 -23
  21. data/lib/selenium-cucumber/methods/configuration_methods.rb +35 -35
  22. data/lib/selenium-cucumber/methods/error_handling_methods.rb +86 -86
  23. data/lib/selenium-cucumber/methods/input_methods.rb +67 -67
  24. data/lib/selenium-cucumber/methods/javascript_handling_methods.rb +9 -9
  25. data/lib/selenium-cucumber/methods/misc_methods.rb +34 -34
  26. data/lib/selenium-cucumber/methods/mobile_methods.rb +241 -241
  27. data/lib/selenium-cucumber/methods/navigate_methods.rb +165 -165
  28. data/lib/selenium-cucumber/methods/progress_methods.rb +15 -15
  29. data/lib/selenium-cucumber/methods/required_files.rb +10 -10
  30. data/lib/selenium-cucumber/methods/screenshot_methods.rb +6 -6
  31. data/lib/selenium-cucumber/mobile_steps.rb +99 -99
  32. data/lib/selenium-cucumber/navigation_steps.rb +105 -105
  33. data/lib/selenium-cucumber/progress_steps.rb +18 -18
  34. data/lib/selenium-cucumber/screenshot_steps.rb +5 -5
  35. data/lib/selenium-cucumber/version.rb +5 -5
  36. metadata +69 -91
  37. data/example/android/android_app/HinduCalendar.zip +0 -0
  38. data/example/android/android_app/HinduCalendar/HinduCalendar.apk +0 -0
  39. data/example/android/android_app/HinduCalendar/README.md +0 -19
  40. data/example/android/android_app/HinduCalendar/Results.html +0 -472
  41. data/example/android/android_app/HinduCalendar/features/01_HC_homepage_menu_validation.feature +0 -36
  42. data/example/android/android_app/HinduCalendar/features/02_HC_homepage_menu_navigation.feature +0 -71
  43. data/example/android/android_app/HinduCalendar/features/03_HC_Create_Save_View_Delete_Kundali.feature +0 -63
  44. data/example/android/android_app/HinduCalendar/features/actual_images/test.png +0 -0
  45. data/example/android/android_app/HinduCalendar/features/expected_images/test.png +0 -0
  46. data/example/android/android_app/HinduCalendar/features/image_difference/test.png +0 -0
  47. data/example/android/android_app/HinduCalendar/features/my_first.feature +0 -1
  48. data/example/android/android_app/HinduCalendar/features/screenshots/test.png +0 -0
  49. data/example/android/android_app/HinduCalendar/features/step_definitions/01_HC_homepage_menu_validation.rb +0 -81
  50. data/example/android/android_app/HinduCalendar/features/step_definitions/02_HC_homepage_menu_navigation.rb +0 -132
  51. data/example/android/android_app/HinduCalendar/features/step_definitions/03_HC_Create_Save_View_Delete_Kundali.rb +0 -413
  52. data/example/android/android_app/HinduCalendar/features/step_definitions/custom_steps.rb +0 -5
  53. data/example/android/android_app/HinduCalendar/features/support/env.rb +0 -51
  54. data/example/android/android_app/HinduCalendar/features/support/hooks.rb +0 -38
  55. data/example/android/android_app/android_app_calculator.zip +0 -0
  56. data/example/android/android_app/android_app_calculator/AndroidCalculator.apk +0 -0
  57. data/example/android/android_app/android_app_calculator/features/actual_images/test.png +0 -0
  58. data/example/android/android_app/android_app_calculator/features/calculator.feature +0 -36
  59. data/example/android/android_app/android_app_calculator/features/expected_images/test.png +0 -0
  60. data/example/android/android_app/android_app_calculator/features/image_difference/test.png +0 -0
  61. data/example/android/android_app/android_app_calculator/features/my_first.feature +0 -13
  62. data/example/android/android_app/android_app_calculator/features/screenshots/test.png +0 -0
  63. data/example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb +0 -5
  64. data/example/android/android_app/android_app_calculator/features/support/env.rb +0 -51
  65. data/example/android/android_app/android_app_calculator/features/support/hooks.rb +0 -38
  66. data/example/android/android_web/android_web_gmail_login.zip +0 -0
  67. data/example/android/android_web/android_web_gmail_login/features/actual_images/test.png +0 -0
  68. data/example/android/android_web/android_web_gmail_login/features/expected_images/test.png +0 -0
  69. data/example/android/android_web/android_web_gmail_login/features/gmail_login.feature +0 -12
  70. data/example/android/android_web/android_web_gmail_login/features/image_difference/test.png +0 -0
  71. data/example/android/android_web/android_web_gmail_login/features/my_first.feature +0 -1
  72. data/example/android/android_web/android_web_gmail_login/features/screenshots/test.png +0 -0
  73. data/example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
  74. data/example/android/android_web/android_web_gmail_login/features/support/env.rb +0 -51
  75. data/example/android/android_web/android_web_gmail_login/features/support/hooks.rb +0 -38
  76. data/example/desktop web/desktop_web_gmail_login.zip +0 -0
  77. data/example/desktop web/desktop_web_gmail_login/features/actual_images/test.png +0 -0
  78. data/example/desktop web/desktop_web_gmail_login/features/expected_images/test.png +0 -0
  79. data/example/desktop web/desktop_web_gmail_login/features/gmail_login.feature +0 -10
  80. data/example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature +0 -22
  81. data/example/desktop web/desktop_web_gmail_login/features/image_difference/test.png +0 -0
  82. data/example/desktop web/desktop_web_gmail_login/features/my_first.feature +0 -1
  83. 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
  84. data/example/desktop web/desktop_web_gmail_login/features/screenshots/test.png +0 -0
  85. data/example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
  86. data/example/desktop web/desktop_web_gmail_login/features/support/env.rb +0 -51
  87. data/example/desktop web/desktop_web_gmail_login/features/support/hooks.rb +0 -38
  88. data/example/desktop web/desktop_web_gmail_login/result.html +0 -478
@@ -1,242 +1,242 @@
1
- require_relative 'required_files'
2
-
3
- def swipe_using_elements(access_type1, access_name1, access_type2, access_name2)
4
-
5
- # to get start x,y co-ordinates
6
- ele_from = WAIT.until { $driver.find_element(:"#{access_type1}" => "#{access_name1}") }.location
7
- start_x = ele_from.x
8
- start_y = ele_from.y
9
-
10
- # to get end x,y co-ordinates
11
- ele_to = WAIT.until { $driver.find_element(:"#{access_type2}" => "#{access_name2}") }.location
12
- end_x = ele_to.x
13
- end_y = ele_to.y
14
-
15
- swipe(start_x, start_y, end_x, end_y)
16
- end
17
-
18
- def swipe(start_x, start_y, end_x, end_y)
19
- action = Appium::TouchAction.new.press(x: "#{start_x}", y: "#{start_y}").wait(1000).move_to(x: "#{end_x}", y: "#{end_y}").release()
20
- action.perform
21
- end
22
-
23
- def swipe_direction(direction)
24
- size = $driver.manage.window.size
25
- height = size.height.to_i - 10
26
- width = size.width.to_i - 10
27
-
28
- if direction == 'right'
29
- start_x = (width/100) * 15 # 83
30
- start_y = height/2 # 695
31
- end_x = (width/100) * 90 # 900
32
- end_y = height/2 # 630
33
- elsif direction == 'left'
34
- start_x = (width/100) * 90
35
- start_y = height/2
36
- end_x = (width/100) * 15
37
- end_y = height/2
38
- elsif direction == 'up'
39
- start_x = width/2
40
- start_y = (height/100) * 90
41
- end_x = width/2
42
- end_y = (height/100) * 15
43
- elsif direction == 'down'
44
- start_x = width/2
45
- start_y = (height/100) * 15
46
- end_x = width/2
47
- end_y = (height/100) * 90
48
- else
49
- raise "invalid direction"
50
- end
51
-
52
- swipe(start_x, start_y, end_x, end_y)
53
- end
54
-
55
- def swipe_element_with_direction(access_type, access_name, direction)
56
- ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
57
- x_start = ele_from.x
58
- y_start = ele_from.y
59
-
60
- ele_size = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }
61
- ele_height = ele_size.size.height.to_i
62
- ele_width = ele_size.size.width.to_i
63
- #puts ele_size.width
64
-
65
- x_end = x_start + ele_width
66
- y_end = y_start + ele_height
67
-
68
- puts "[#{x_start},#{y_start}],[#{x_end},#{y_end}]"
69
-
70
- puts "ele_height : #{ele_height}" # 1776
71
- puts "ele_width :#{ele_width}" #
72
-
73
- size = $driver.manage.window.size
74
- height = size.height.to_i - 5
75
- puts "height : #{height}" # 1776
76
- width = size.width.to_i - 5
77
- puts "width :#{width}" #
78
-
79
- if direction == 'right'
80
- start_x = x_start + (ele_width*0.25)
81
- start_y = (y_start) + (ele_height/2)
82
- end_x = width # 900
83
- end_y = (y_start) + (ele_height/2)
84
- elsif direction == 'left'
85
- start_x = x_end - 5
86
- start_y = (y_end) - (ele_height/2)
87
- end_x = 10
88
- end_y = (y_end) - (ele_height/2)
89
- elsif direction == 'up'
90
- if ele_height > height
91
- ele_height = height
92
- end
93
-
94
- if y_end > height
95
- y_end = y_start + ele_height
96
- end
97
-
98
- puts "ele_height: #{ele_height}"
99
- puts "ele_height*).75: #{ele_height*0.75}"
100
- puts y_end
101
- start_x = x_end - (ele_width/2)
102
-
103
- start_y = (y_end) - (ele_height*0.75)
104
-
105
- if start_y < 0
106
- y_start = 0
107
- y_end = y_start + ele_height
108
- start_y = (y_end) - (ele_height*0.75)
109
- # puts y_end
110
- # puts "y_start: #{y_start}"
111
- # puts "ele_height: #{ele_height}"
112
- # puts "ele_height*0.75: #{ele_height*0.75}"
113
- end
114
-
115
- end_x = (x_end/2)
116
- end_y = 10
117
- elsif direction == 'down'
118
- start_x = x_start + (ele_width/2)
119
- if ele_height > height
120
- ele_height = height
121
- end
122
- start_y = (y_start) + (ele_height*0.25)
123
- if start_y < 0
124
- y_start = 0
125
- if ele_height > height
126
- ele_height = height
127
- end
128
- start_y = (y_start) + (ele_height*0.25)
129
- # puts y_end
130
- # puts "y_start: #{y_start}"
131
- puts "ele_height: #{ele_height}"
132
- puts "ele_height*0.25: #{ele_height*0.25}"
133
- end
134
- end_x = x_start + (ele_width/2)
135
- if ele_height > height
136
- ele_height = height
137
- end
138
- end_y = ele_height
139
- else
140
- raise "invalid direction"
141
- end
142
-
143
- puts "start_x: #{start_x}, start_y: #{start_y}"
144
- puts "end_x: #{end_x}, end_y: #{end_y}"
145
-
146
- swipe(start_x, start_y, end_x, end_y)
147
- end
148
-
149
- def swipe_coordinates_with_direction(start_x, start_y, direction)
150
-
151
- # ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.size
152
- # height = size.height.to_i - 5
153
- # puts "height : #{height}" # 1776
154
- # width = size.width.to_i - 5
155
- # puts "width :#{width}" #
156
-
157
- size = $driver.manage.window.size
158
- height = size.height.to_i - 5
159
- puts "height : #{height}"
160
- width = size.width.to_i - 5
161
- puts "width :#{width}"
162
-
163
- if direction == 'right'
164
- start_x = start_x
165
- start_y = start_y
166
- end_x = width
167
- end_y = start_y
168
- elsif direction == 'left'
169
- start_x = start_x
170
- start_y = start_y
171
- end_x = 10
172
- end_y = start_y
173
- elsif direction == 'up'
174
- start_x = start_x
175
- start_y = start_y
176
- end_x = start_x
177
- end_y = 10
178
- elsif direction == 'down'
179
- start_x = start_x
180
- start_y = start_y
181
- end_x = start_x
182
- end_y = height
183
- else
184
- raise "invalid direction"
185
- end
186
-
187
- swipe(start_x, start_y, end_x, end_y)
188
- end
189
-
190
-
191
- def long_press_on_element_default_duration(access_type, access_name)
192
- begin
193
- ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
194
- x = ele_from.x
195
- y = ele_from.y
196
-
197
- action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait(2000).move_to(x: "#{x}", y: "#{y}").release()
198
- action.perform
199
- rescue Exception => e
200
- if e.to_s == 'The swipe did not complete successfully'
201
- print ""
202
- else
203
- raise e
204
- end
205
- end
206
- end
207
-
208
- def long_press_on_element_with_duration(access_type, access_name, duration)
209
- begin
210
- ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
211
- x = ele_from.x
212
- y = ele_from.y
213
-
214
- duration = duration.to_i
215
- duration = duration * 1000
216
- action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait("#{duration}").move_to(x: "#{x}", y: "#{y}").release()
217
- action.perform
218
- rescue Exception => e
219
- if e.to_s == 'The swipe did not complete successfully'
220
- print ""
221
- else
222
- raise e
223
- end
224
- end
225
- end
226
-
227
- def long_press_on_coordinates(x, y)
228
- action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait(2000).move_to(x: "#{x}", y: "#{y}").release()
229
- action.perform
230
- end
231
-
232
- def long_press_on_coordinates_with_duration(x, y, duration)
233
- duration = duration.to_i
234
- duration = duration * 1000
235
- puts duration
236
- action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait("#{duration}").move_to(x: "#{x}", y: "#{y}").release()
237
- action.perform
238
- end
239
-
240
- def close_app
241
- $driver.close_app
1
+ require_relative 'required_files'
2
+
3
+ def swipe_using_elements(access_type1, access_name1, access_type2, access_name2)
4
+
5
+ # to get start x,y co-ordinates
6
+ ele_from = WAIT.until { $driver.find_element(:"#{access_type1}" => "#{access_name1}") }.location
7
+ start_x = ele_from.x
8
+ start_y = ele_from.y
9
+
10
+ # to get end x,y co-ordinates
11
+ ele_to = WAIT.until { $driver.find_element(:"#{access_type2}" => "#{access_name2}") }.location
12
+ end_x = ele_to.x
13
+ end_y = ele_to.y
14
+
15
+ swipe(start_x, start_y, end_x, end_y)
16
+ end
17
+
18
+ def swipe(start_x, start_y, end_x, end_y)
19
+ action = Appium::TouchAction.new.press(x: "#{start_x}", y: "#{start_y}").wait(1000).move_to(x: "#{end_x}", y: "#{end_y}").release()
20
+ action.perform
21
+ end
22
+
23
+ def swipe_direction(direction)
24
+ size = $driver.manage.window.size
25
+ height = size.height.to_i - 10
26
+ width = size.width.to_i - 10
27
+
28
+ if direction == 'right'
29
+ start_x = (width/100) * 15 # 83
30
+ start_y = height/2 # 695
31
+ end_x = (width/100) * 90 # 900
32
+ end_y = height/2 # 630
33
+ elsif direction == 'left'
34
+ start_x = (width/100) * 90
35
+ start_y = height/2
36
+ end_x = (width/100) * 15
37
+ end_y = height/2
38
+ elsif direction == 'up'
39
+ start_x = width/2
40
+ start_y = (height/100) * 90
41
+ end_x = width/2
42
+ end_y = (height/100) * 15
43
+ elsif direction == 'down'
44
+ start_x = width/2
45
+ start_y = (height/100) * 15
46
+ end_x = width/2
47
+ end_y = (height/100) * 90
48
+ else
49
+ raise "invalid direction"
50
+ end
51
+
52
+ swipe(start_x, start_y, end_x, end_y)
53
+ end
54
+
55
+ def swipe_element_with_direction(access_type, access_name, direction)
56
+ ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
57
+ x_start = ele_from.x
58
+ y_start = ele_from.y
59
+
60
+ ele_size = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }
61
+ ele_height = ele_size.size.height.to_i
62
+ ele_width = ele_size.size.width.to_i
63
+ #puts ele_size.width
64
+
65
+ x_end = x_start + ele_width
66
+ y_end = y_start + ele_height
67
+
68
+ puts "[#{x_start},#{y_start}],[#{x_end},#{y_end}]"
69
+
70
+ puts "ele_height : #{ele_height}" # 1776
71
+ puts "ele_width :#{ele_width}" #
72
+
73
+ size = $driver.manage.window.size
74
+ height = size.height.to_i - 5
75
+ puts "height : #{height}" # 1776
76
+ width = size.width.to_i - 5
77
+ puts "width :#{width}" #
78
+
79
+ if direction == 'right'
80
+ start_x = x_start + (ele_width*0.25)
81
+ start_y = (y_start) + (ele_height/2)
82
+ end_x = width # 900
83
+ end_y = (y_start) + (ele_height/2)
84
+ elsif direction == 'left'
85
+ start_x = x_end - 5
86
+ start_y = (y_end) - (ele_height/2)
87
+ end_x = 10
88
+ end_y = (y_end) - (ele_height/2)
89
+ elsif direction == 'up'
90
+ if ele_height > height
91
+ ele_height = height
92
+ end
93
+
94
+ if y_end > height
95
+ y_end = y_start + ele_height
96
+ end
97
+
98
+ puts "ele_height: #{ele_height}"
99
+ puts "ele_height*).75: #{ele_height*0.75}"
100
+ puts y_end
101
+ start_x = x_end - (ele_width/2)
102
+
103
+ start_y = (y_end) - (ele_height*0.75)
104
+
105
+ if start_y < 0
106
+ y_start = 0
107
+ y_end = y_start + ele_height
108
+ start_y = (y_end) - (ele_height*0.75)
109
+ # puts y_end
110
+ # puts "y_start: #{y_start}"
111
+ # puts "ele_height: #{ele_height}"
112
+ # puts "ele_height*0.75: #{ele_height*0.75}"
113
+ end
114
+
115
+ end_x = (x_end/2)
116
+ end_y = 10
117
+ elsif direction == 'down'
118
+ start_x = x_start + (ele_width/2)
119
+ if ele_height > height
120
+ ele_height = height
121
+ end
122
+ start_y = (y_start) + (ele_height*0.25)
123
+ if start_y < 0
124
+ y_start = 0
125
+ if ele_height > height
126
+ ele_height = height
127
+ end
128
+ start_y = (y_start) + (ele_height*0.25)
129
+ # puts y_end
130
+ # puts "y_start: #{y_start}"
131
+ puts "ele_height: #{ele_height}"
132
+ puts "ele_height*0.25: #{ele_height*0.25}"
133
+ end
134
+ end_x = x_start + (ele_width/2)
135
+ if ele_height > height
136
+ ele_height = height
137
+ end
138
+ end_y = ele_height
139
+ else
140
+ raise "invalid direction"
141
+ end
142
+
143
+ puts "start_x: #{start_x}, start_y: #{start_y}"
144
+ puts "end_x: #{end_x}, end_y: #{end_y}"
145
+
146
+ swipe(start_x, start_y, end_x, end_y)
147
+ end
148
+
149
+ def swipe_coordinates_with_direction(start_x, start_y, direction)
150
+
151
+ # ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.size
152
+ # height = size.height.to_i - 5
153
+ # puts "height : #{height}" # 1776
154
+ # width = size.width.to_i - 5
155
+ # puts "width :#{width}" #
156
+
157
+ size = $driver.manage.window.size
158
+ height = size.height.to_i - 5
159
+ puts "height : #{height}"
160
+ width = size.width.to_i - 5
161
+ puts "width :#{width}"
162
+
163
+ if direction == 'right'
164
+ start_x = start_x
165
+ start_y = start_y
166
+ end_x = width
167
+ end_y = start_y
168
+ elsif direction == 'left'
169
+ start_x = start_x
170
+ start_y = start_y
171
+ end_x = 10
172
+ end_y = start_y
173
+ elsif direction == 'up'
174
+ start_x = start_x
175
+ start_y = start_y
176
+ end_x = start_x
177
+ end_y = 10
178
+ elsif direction == 'down'
179
+ start_x = start_x
180
+ start_y = start_y
181
+ end_x = start_x
182
+ end_y = height
183
+ else
184
+ raise "invalid direction"
185
+ end
186
+
187
+ swipe(start_x, start_y, end_x, end_y)
188
+ end
189
+
190
+
191
+ def long_press_on_element_default_duration(access_type, access_name)
192
+ begin
193
+ ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
194
+ x = ele_from.x
195
+ y = ele_from.y
196
+
197
+ action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait(2000).move_to(x: "#{x}", y: "#{y}").release()
198
+ action.perform
199
+ rescue Exception => e
200
+ if e.to_s == 'The swipe did not complete successfully'
201
+ print ""
202
+ else
203
+ raise e
204
+ end
205
+ end
206
+ end
207
+
208
+ def long_press_on_element_with_duration(access_type, access_name, duration)
209
+ begin
210
+ ele_from = WAIT.until { $driver.find_element(:"#{access_type}" => "#{access_name}") }.location
211
+ x = ele_from.x
212
+ y = ele_from.y
213
+
214
+ duration = duration.to_i
215
+ duration = duration * 1000
216
+ action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait("#{duration}").move_to(x: "#{x}", y: "#{y}").release()
217
+ action.perform
218
+ rescue Exception => e
219
+ if e.to_s == 'The swipe did not complete successfully'
220
+ print ""
221
+ else
222
+ raise e
223
+ end
224
+ end
225
+ end
226
+
227
+ def long_press_on_coordinates(x, y)
228
+ action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait(2000).move_to(x: "#{x}", y: "#{y}").release()
229
+ action.perform
230
+ end
231
+
232
+ def long_press_on_coordinates_with_duration(x, y, duration)
233
+ duration = duration.to_i
234
+ duration = duration * 1000
235
+ puts duration
236
+ action = Appium::TouchAction.new.press(x: "#{x}", y: "#{y}").wait("#{duration}").move_to(x: "#{x}", y: "#{y}").release()
237
+ action.perform
238
+ end
239
+
240
+ def close_app
241
+ $driver.close_app
242
242
  end