1616from time import sleep
1717
1818from appium import webdriver
19+ from appium .webdriver .common .mobileby import MobileBy
1920from appium .webdriver .common .touch_action import TouchAction
2021from appium .webdriver .common .multi_action import MultiAction
22+
2123import desired_capabilities
24+ from helper .test_helper import wait_for_element
2225
2326# the emulator is sometimes slow and needs time to think
24- SLEEPY_TIME = 1
27+ SLEEPY_TIME = 3
2528
2629
2730class MultiActionTests (unittest .TestCase ):
@@ -33,21 +36,24 @@ def tearDown(self):
3336 self .driver .quit ()
3437
3538 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' )
3841 self .driver .scroll (el1 , el2 )
3942
40- el = self .driver .find_element_by_name ('Views' )
43+ el = self .driver .find_element_by_accessibility_id ('Views' )
4144 action = TouchAction (self .driver )
4245 action .tap (el ).perform ()
4346
44- el = self .driver .find_element_by_name ('Expandable Lists' )
4547 # 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' )
4651 action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
4752
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' )
4954 action .tap (el ).perform ()
5055
56+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.ListView' , SLEEPY_TIME )
5157 els = self .driver .find_elements_by_class_name ('android.widget.ListView' )
5258 a1 = TouchAction ()
5359 a1 .press (els [0 ]) \
@@ -62,21 +68,24 @@ def test_parallel_actions(self):
6268 ma .perform ()
6369
6470 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' )
6773 self .driver .scroll (el1 , el2 )
6874
69- el = self .driver .find_element_by_name ('Views' )
75+ el = self .driver .find_element_by_accessibility_id ('Views' )
7076 action = TouchAction (self .driver )
7177 action .tap (el ).perform ()
7278
73- el = self .driver .find_element_by_name ('Expandable Lists' )
7479 # 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' )
7583 action .press (el ).move_to (x = 100 , y = - 1000 ).release ().perform ()
7684
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' )
7886 action .tap (el ).perform ()
7987
88+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.ListView' , SLEEPY_TIME )
8089 els = self .driver .find_elements_by_class_name ('android.widget.ListView' )
8190 a1 = TouchAction ()
8291 a1 .press (els [0 ]) \
@@ -99,18 +108,19 @@ def test_actions_with_waits(self):
99108 ma .perform ()
100109
101110 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' )
103112 action = TouchAction (self .driver )
104113 action .tap (el ).perform ()
105114
115+ wait_for_element (self .driver , MobileBy .CLASS_NAME , 'android.widget.TextView' , SLEEPY_TIME )
106116 els = self .driver .find_elements_by_class_name ('android.widget.TextView' )
107117 self .driver .scroll (els [len (els ) - 1 ], els [0 ])
108118
109119 els = self .driver .find_elements_by_class_name ('android.widget.TextView' )
110120 if els [len (els ) - 1 ].get_attribute ('name' ) != 'Xfermodes' :
111121 self .driver .scroll (els [len (els ) - 1 ], els [0 ])
112122
113- el = self .driver .find_element_by_name ('Touch Paint' )
123+ el = self .driver .find_element_by_accessibility_id ('Touch Paint' )
114124 action .tap (el ).perform ()
115125
116126 positions = [(100 , 200 ), (100 , 400 )]
0 commit comments