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] = rf:\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()

 

Appium UI自动化测试

上一篇:MSB3027 无法将“xxx\netcoreapp3.0\xxx.exe”复制到“xxx\netcoreapp3.0\xxx.exe”。超出了重试计数 10。失败。文件被“xxx (6424)”锁定。


下一篇:动态路由联通全网