zoukankan      html  css  js  c++  java
  • 开始一个Android的appium实例

     
    1.查看Android的应用包名和activity的方法
     
    (网上有很多种方法,这里应用的是查看日志的方法)
    CMD中输入>adb logcat -c
                      >adb logcat ActivityManager:i *:s
    然后操作模拟器中要测试的应用,查看日志,结果如下,cmp=应用包名/Activity
    参考文件:http://blog.csdn.net/jlminghui/article/details/40622103     
     
    2.定位元素
     
    Android SDK的一些工具可以帮助定位,在Android SDK安装目录的tools下
    1.monitor.bat:找到Android控件的content-description,方便定位
    2.uiautomatorviewer.bat:查看控件的属性,也可查看被测app的appPackage
    说明:这两个工具都只支持API level16以上的系统,如果低于这个版本,这两个工具是不能使用的
     
    下图是如果有多台机器的情况下怎么选择要获取的机器:
    (uiautomator的使用方法:http://blog.csdn.net/chenbang110/article/details/23371731)
     
    其他方法:使用appium的inspector来定位元素,具体使用方法链接可以参见我的另一篇随笔http://www.cnblogs.com/meitian/p/4837938.html
     
    3.开启appium,launch(右侧的小三角)
     
    4.编写测试用例,执行用例脚本,完成一个appium实例
    (在执行测试脚本前,一定要保证开启了appium和模拟器)
    代码:
    from appium import webdriver
    import time
    #以下为启动session时的desired capabilities的设置
    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '18'
    desired_caps['deviceName'] = 'emulator-5554'
    #desired_caps['app']='D:softwareAndroidAPPScom.tencent.mm_621.apk',这个是要安装的app的安装包地址,不是必须的,有#这个项的话会先通过这个地址安装app,我没有用这个,直接用的Package名和activity名
    desired_caps['appPackage'] = 'com.android.calculator2'
    desired_caps['appActivity'] = '.Calculator'

    #以下为启动driver,以及定位元素和操作元素的一些用例操作
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    time.sleep(5)
    driver.find_element_by_id("com.android.calculator2:id/digit1").click()
    time.sleep(2)
    driver.find_element_by_id("com.android.calculator2:id/plus").click()
    time.sleep(2)
    driver.find_element_by_id("com.android.calculator2:id/digit2").click()
    time.sleep(2)
    driver.find_element_by_id("com.android.calculator2:id/equal").click()
    time.sleep(2)
    test = driver.find_element_by_class_name("android.widget.EditText").text
    print(test)
    assert test == 3
    driver.quit()
     
     
    desired capabilities的设置时的一些项说明:
     
    其他注意点:
    1.如果有多台模拟器,appium的Android settings中的launch device里选择的launch VAD会影响到启动的模拟器,我代码里设置的是启动platformVersion为4.3.1的模拟器,但是appium那里设置的是4.0.4,执行时会一直去找4.0.4,没有找到最后就报错了
    2.低版本的Android要用selendroid
    3.公司需要配置代理才可以联网,这里如果不更改启动的代理是没有办法执行用例成功的,有个简便做法,先开启fiddle,再去执行用例
  • 相关阅读:
    angular设置反向代理
    typescript设置全屏
    解决TS报错Property 'style' does not exist on type 'Element'
    安全错误使用CORS在IE10与Node和Express及XMLHttpRequest: 网络错误 0x4c7, 操作已被用户取消
    vue axios 请求 https 的特殊处理
    SQL Server 查询基础及分组(每三个小时一组)
    SQL Server 表结构操作
    SQL Server 存储过程T-SQL基础语法
    .Net Core 使用Http请求及基于 Polly 的处理故障
    .Net Core 通用主机(Core 在控制台应用程序中的应用)
  • 原文地址:https://www.cnblogs.com/meitian/p/4864671.html
Copyright © 2011-2022 走看看