Appium UI自动化测试
#coding:utf-8 from appium import webdriver import time,traceback ''' desired_capabilities:这些键告诉appium server测试程序希望进行的是什么样的测试 appPackage:所测APP应用对应的ID appActivity:所测APP应用的交互界面 获取appPackage与appActivity的方法: 1.进入apk所在的路径 2.‘d:/tools/Android/sdk/build-tools/25.0.2/aapt.exe dump badging toutiao.apk > e:/info.txt && e:/info.txt’ 3.查看package:name与launchable-activity:name的值 session:Appium测试程序和Appium server之间的http请求都必须在一个session中进行 session id:创建的session的标志 查看界面元素的工具: 获取元素的方法之一: content-desc属性用来描述元素的作用:driver.find_element_by_accessibility_id() desired_caps={} desired_caps["platformName"]='Android' desired_caps["platformVersion"]='5.0' desired_caps["deviceName"]='test' #设备的名称,test随意取,但是参数必须要有 desired_caps["app"]=r'e:\apk\toutiao.apk' #电脑上apk的路径,如果设备上面已经安装了应用可以不用设置这个参数,如果没有安装会根据路径找到apk并安装到设备上 desired_caps["appPackage"]='io.manong.developerdaily' desired_caps["appActivity"]='io.toutiao.android.ui.activity.LaunchActivity' desired_caps["unicodeKeyboard"]='True' #测试程序中输入中文时可以设置这个参数,会在设备上安装这样的输入法 desired_caps["resetKeyboard"]='True' #将前面设置的输入法再切换回去 desired_caps["noReset"]='True' #告诉appium server不要清除测试程序所对应的数据(不设置会把测试程序所对应的数据全部清除掉) desired_caps["newCommandTimeout"]=6000 #超过6000s未发送命令,会话结束 #启动Remto RFC driver=webdriver.Remote("http://localhost:4723/wd/hub",desired_caps) try: driver.implicitly_wait(10) #缺省等待时间10S driver.find_element_by_id("").click() ''' desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = 'test' desired_caps['app'] = r'f:\toutiao.apk' desired_caps['appPackage'] = 'io.manong.developerdaily' desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity' desired_caps['unicodeKeyboard'] = True desired_caps['resetKeyboard'] = True desired_caps['noReset'] = True desired_caps['newCommandTimeout'] = 6000 #启动Remote RPC driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) try: driver.implicitly_wait(10) # 根据id找到元素,并点击,id和 html 元素的id不同 driver.find_element_by_id("io.manong.developerdaily:id/tab_bar_plus").click() time.sleep(1) driver.find_element_by_id("io.manong.developerdaily:id/btn_email").click() time.sleep(1) # 输入用户名、密码 ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email") ele.send_keys('jcyrss@163.com') ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password") ele.send_keys('sdfsdf') time.sleep(2) # 点击登录 driver.find_element_by_id('io.manong.developerdaily:id/btn_login').click() pass except: print (traceback.format_exc()) input('**** Press to quit..') driver.quit()