[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):