[BUG]Appium1.9.1 这个问题竟然花了我5分钟进行定位

1、先上问题,知道是什么问题先

 1 EE
 2 ======================================================================
 3 ERROR: testCalcu (__main__.MyTest)
 4 ----------------------------------------------------------------------
 5 Traceback (most recent call last):
 6   File "D:\WorkSpace3\EXAMPLE\Appiu_ex\test.py", line 28, in testCalcu
 7     self.driver.find_element_by_id("com.txt.calculator:id/tv_skip").click()
 8 AttributeError: 'MyTest' object has no attribute 'driver'
 9 
10 ======================================================================
11 ERROR: testCalcu (__main__.MyTest)
12 ----------------------------------------------------------------------
13 Traceback (most recent call last):
14   File "D:\WorkSpace3\EXAMPLE\Appiu_ex\test.py", line 25, in tearDown
15     self.driver.quit()
16 AttributeError: 'MyTest' object has no attribute 'driver'
17 
18 ----------------------------------------------------------------------
19 Ran 1 test in 0.001s
20 
21 FAILED (errors=2)

2、再上源码,如果你也在5分钟内未找到该问题原因,呵呵,那就在后续写代码中一定要仔细再仔细

 1 # -*- coding:utf-8 -*-
 2 from appium import webdriver
 3 import unittest
 4 
 5 class MyTest(unittest.TestCase):
 6     def setup(self):
 7         desired_caps = {}        
 8         desired_caps['platformName'] ='Android'        
 9         desired_caps['platformVersion'] ='6.0'       
10         desired_caps['deviceName'] ='DIYTHYTCCQBIV47D'       
11         desired_caps['appPackage'] ='com.txt.calculator'        
12         desired_caps['appActivity'] ='.Calculator'        
13         desired_caps["unicodeKeyboard"] ="True"        
14         desired_caps["resetKeyboard"] ="True"        
15         self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
16     
17     def tearDown(self):
18         self.driver.quit()
19         
20     def testCalcu(self):
21         self.driver.find_element_by_id("com.txt.calculator:id/tv_skip").click()
22         self.driver.find_element_by_id("com.txt.calculator:id/digit_8").click()
23         self.driver.find_element_by_id("com.txt.calculator:id/op_add").click()
24         self.driver.find_element_by_id("com.txt.calculator:id/digit_5").click()
25         self.driver.find_element_by_id("com.txt.calculator:id/eq").click()
26         try:            
27             result = self.driver.find_element_by_class_name("android.widget.EditText").text
28             self.assertEqual('13', result, "The result isn't right")
29         except Exception as e:
30             print (e)
31             self.fail("The element is wrong or non-exists")
32 
33 if __name__ == '__main__':
34     unittest.main()

 

3、duang   duang  duang duang开始计时

 

 

 

 

 

 

 

 

 

 

 

 

 

~~~~~5分钟之后,给出出问题的源码

class MyTest(unittest.TestCase):
    def setup(self):

  注意setup   此处 up首字要大写,如未按照unittest框架的要求进行编写,它自然就不会先进行初使化了,自然也就出现后面的报错 MyTest实例中没有driver的属性

修改正确如下:

class MyTest(unittest.TestCase):
    def setUp(self):

  

 

posted @ 2018-09-29 13:19  iSZ  阅读(455)  评论(0编辑  收藏  举报