• 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()
  • 相关阅读:
    小心SQL SERVER 2014新特性——基数评估引起一些性能问题
    SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
    Windows Server 2012 Recycle Bin corrupted
    SQL SERVER CHAR ( integer_expression )各版本返回值差异的案例
    SQL Server 2008 R2 升级到 Service Pack 3后Report Builder启动不了
    MySQL如何导出带日期格式的文件
    ORACLE TO_CHAR函数格式化数字的出现空格的原因
    Linux监控工具介绍系列——smem
    Linux命令学习总结:dos2unix
    Linux命令学习总结:hexdump
  • 原文地址:https://www.cnblogs.com/pipile/p/12604848.html
Copyright © 2020-2023  润新知