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()
  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/pipile/p/12604848.html
Copyright © 2011-2022 走看看