zoukankan      html  css  js  c++  java
  • 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
Copyright © 2011-2022 走看看