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	outiao.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:	outiao.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()
原文地址:https://www.cnblogs.com/pipile/p/12604848.html