16
16
from time import sleep
17
17
18
18
from appium import webdriver
19
+ from appium .webdriver .common .mobileby import MobileBy
19
20
from appium .webdriver .common .touch_action import TouchAction
20
21
from appium .webdriver .common .multi_action import MultiAction
22
+
21
23
import desired_capabilities
24
+ from helper .test_helper import wait_for_element
22
25
23
26
# the emulator is sometimes slow and needs time to think
24
- SLEEPY_TIME = 1
27
+ SLEEPY_TIME = 3
25
28
26
29
27
30
class MultiActionTests (unittest .TestCase ):
@@ -33,21 +36,24 @@ def tearDown(self):
33
36
self .driver .quit ()
34
37
35
38
def test_parallel_actions (self ):
36
- el1 = self .driver .find_element_by_name ('Content' )
37
- el2 = self .driver .find_element_by_name ('Animation' )
39
+ el1 = self .driver .find_element_by_accessibility_id ('Content' )
40
+ el2 = self .driver .find_element_by_accessibility_id ('Animation' )
38
41
self .driver .scroll (el1 , el2 )
39
42
40
- el = self .driver .find_element_by_name ('Views' )
43
+ el = self .driver .find_element_by_accessibility_id ('Views' )
41
44
action = TouchAction (self .driver )
42
45
action .tap (el ).perform ()
43
46
44
- el = self .driver .find_element_by_name ('Expandable Lists' )
45
47
# simulate a swipe/scroll
48
+ el = wait_for_element (self .driver , MobileBy .ACCESSIBILITY_ID , 'Expandable Lists' , SLEEPY_TIME )
49
+ action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
50
+ el = self .driver .find_element_by_accessibility_id ('Layouts' )
46
51
action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
47
52
48
- el = self .driver .find_element_by_name ('Splitting Touches across Views' )
53
+ el = self .driver .find_element_by_accessibility_id ('Splitting Touches across Views' )
49
54
action .tap (el ).perform ()
50
55
56
+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.ListView' , SLEEPY_TIME )
51
57
els = self .driver .find_elements_by_class_name ('android.widget.ListView' )
52
58
a1 = TouchAction ()
53
59
a1 .press (els [0 ]) \
@@ -62,21 +68,24 @@ def test_parallel_actions(self):
62
68
ma .perform ()
63
69
64
70
def test_actions_with_waits (self ):
65
- el1 = self .driver .find_element_by_name ('Content' )
66
- el2 = self .driver .find_element_by_name ('Animation' )
71
+ el1 = self .driver .find_element_by_accessibility_id ('Content' )
72
+ el2 = self .driver .find_element_by_accessibility_id ('Animation' )
67
73
self .driver .scroll (el1 , el2 )
68
74
69
- el = self .driver .find_element_by_name ('Views' )
75
+ el = self .driver .find_element_by_accessibility_id ('Views' )
70
76
action = TouchAction (self .driver )
71
77
action .tap (el ).perform ()
72
78
73
- el = self .driver .find_element_by_name ('Expandable Lists' )
74
79
# simulate a swipe/scroll
80
+ el = wait_for_element (self .driver , MobileBy .ACCESSIBILITY_ID , 'Expandable Lists' , SLEEPY_TIME )
81
+ action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
82
+ el = self .driver .find_element_by_accessibility_id ('Layouts' )
75
83
action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
76
84
77
- el = self .driver .find_element_by_name ('Splitting Touches across Views' )
85
+ el = self .driver .find_element_by_accessibility_id ('Splitting Touches across Views' )
78
86
action .tap (el ).perform ()
79
87
88
+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.ListView' , SLEEPY_TIME )
80
89
els = self .driver .find_elements_by_class_name ('android.widget.ListView' )
81
90
a1 = TouchAction ()
82
91
a1 .press (els [0 ]) \
@@ -99,18 +108,19 @@ def test_actions_with_waits(self):
99
108
ma .perform ()
100
109
101
110
def test_driver_multi_tap (self ):
102
- el = self .driver .find_element_by_name ('Graphics' )
111
+ el = self .driver .find_element_by_accessibility_id ('Graphics' )
103
112
action = TouchAction (self .driver )
104
113
action .tap (el ).perform ()
105
114
115
+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.TextView' , SLEEPY_TIME )
106
116
els = self .driver .find_elements_by_class_name ('android.widget.TextView' )
107
117
self .driver .scroll (els [len (els ) - 1 ], els [0 ])
108
118
109
119
els = self .driver .find_elements_by_class_name ('android.widget.TextView' )
110
120
if els [len (els ) - 1 ].get_attribute ('name' ) != 'Xfermodes' :
111
121
self .driver .scroll (els [len (els ) - 1 ], els [0 ])
112
122
113
- el = self .driver .find_element_by_name ('Touch Paint' )
123
+ el = self .driver .find_element_by_accessibility_id ('Touch Paint' )
114
124
action .tap (el ).perform ()
115
125
116
126
positions = [(100 , 200 ), (100 , 400 )]
0 commit comments