安装appium client:
cmd下输入命令:pip install Appium-Python-Clientpycharm下一个简单的实例,通过appium驱动android模拟器->打开计算器->计算5+6=?->关闭计算器from appium import webdriverdesired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '6.0'desired_caps['deviceName'] = 'Android Emulator'desired_caps['appPackage'] = 'com.android.deskclock'desired_caps['appActivity'] = '.DeskClock'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动appdriver.find_element_by_name("5").click()driver.find_element_by_name("+").click()driver.find_element_by_name("6").click()driver.find_element_by_name("=").click()driver.quit()webdriver.Remote实际上就是原生webdriver的子类,另外Remote()构造函数的第一个参数中需要显示指定appium server监听的端口platformName:使用哪种移动平台。iOS, Android, or FirefoxOSdeviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc…appActivity:待测试的app的Activity名字。比如MainActivity, .Settings。注意,原生app的话要在activity前加个”.“。 appPackage:待测试的app的java package。比如com.example.android.myApp, com.android.settings。 其他:app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。browserName:移动浏览器的名称。比如Safari’ for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android;与app属性互斥。 udid:物理机的id。比如1ae203187fc012gmonitor.bat:该文件位于your_andriod_sdk_path\tools下面,可以帮我们找到android控件的content-description,为以后的find_element_by_accessibility_id 定位方法做参数使用uiautomatorviewer.bat:该文件位于your_andriod_sdk_path\tools下面该工具主要用来查看控件的属性,比如resource id,class name等。该工具也可查看被测app的appPackage(Desired Capabilities中使用)查找appActivity和appPackage:a、启动待测apk b、开启日志输出:adb logcat>D:/log.txt c、关闭日志输出:ctrl+c d、查看日志 找寻:Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859msappPackage = com.mm.android.hsyappActivity = .ui.LoginActivitypython篇el = self.driver.find_element_by_android_uiautomator('new UiSelector().description("Animation")')self.assertIsNotNone(el)els = self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(true)')self.assertIsInstance(els, list)el = self.driver.find_element_by_accessibility_id('Animation')self.assertIsNotNone(el)els = self.driver.find_elements_by_accessibility_id('Animation')self.assertIsInstance(els, list)总的来说就是在driver里增加了 find_element_by_accessibility_id find_elements_by_accessibility_id find_element_by_android_uiautomator find_element_by_android_uiautomator 等方法Appium连接真机1)打开手机的USB调试模式 不同的手机打开调试模式的方式不同。一般都在设置中的开发者模式中打开 2)手机连接电脑 使用数据线连接手机与电脑,然后在cmd中输入adb devices查看是否连接成功 新手可能会出现两个问题 一是输入adb命令时提示不是内部命令或者外部命令那么你需要下载一个adb工具包并存放在C:\Windows\System32目录下(必须强调:与sdk中的adb工具包版本一致!!!!)
二是需要打开手机的usb调试模式并安装好驱动 之后在cmd中输入adb devices 提示如下图则成功
3)启动appium服务 在cmd命令中输入:appium
启动成功或者appium上配置:
安装好django,版本1.9,使用pip install django==1.9命令安装即可