Appium 这个问题竟然花了我5分钟进行定位

Posted sashuangyibing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium 这个问题竟然花了我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):

  

 

以上是关于Appium 这个问题竟然花了我5分钟进行定位的主要内容,如果未能解决你的问题,请参考以下文章

当MyBatis 3.5.X遇上JDK8竟然出现了性能问题,全项目组都得加班~

如何在Appium中使用AI定位

Appium新版本不再支持ByName定位了怎么办

10-appium-toast定位

Appium 定位方法例子

appium+robotframework+python连接真机定位不到元素的问题处理