zoukankan      html  css  js  c++  java
  • 基于appnium+python+夜神模拟器的自动化

    首先搭好appnium环境!参考https://www.cnblogs.com/testlearn/p/11419797.html  

    1、安装夜神模拟器

    下载安装夜神模拟器后,在cmd命令输入adb connect 127.0.0.1:62001,显示出设备则表示连接成功

    2、定位元素

    打开安卓目录下,...sdk ools目录下面的uiautomatorviewer.bat文件;

    打开 uiautomatorviewer 时若报错:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

     重新执行第1步即可

     

     如上,左上角图标应该就是获取手机上当前页面的“元素”/app的信息,这两个属性 resource-id和class就是他对应的属性,可以通过这些属性来定位元素。

    package为当前启动应用的包名,获取包名的另一种方式为:在CMD命令行输入adb shell  进入adb命令行模式

     在adb命令行输入:logcat | grep ActivityManager   ;再启动应用,找到关键字Displayed,关键字后面即为appPackage + appActivity

    3、开始编码

    # coding=utf-8
    
    from appium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # appium服务监听地址
    server = 'http://localhost:4723/wd/hub'     # localhost为本机;4723为端口;/wd/hub可以看成是规定的默认地址
    # app启动参数
    desired_caps = {
      "platformName": "Android",            # platformName:使用哪个移动操作系统平台;iOS,Android或FirefoxOS
      "deviceName": "127.0.0.1:62001",      # deviceName:使用的移动设备或模拟器的种类
      "appPackage": "com.tencent.mm",  # appPackage:你想运行的Android应用程序的Java包(仅限Android使用)
      "appActivity": ".ui.LauncherUI"     # 要从包中启动的Android活动的活动名称。(仅限Android使用)
    }
    
    # 驱动
    driver = webdriver.Remote(server, desired_caps)
    wait = WebDriverWait(driver, 30)
    # 获取登录按钮
    login_btn = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/edu")))
    # 点击登录按钮
    login_btn.click()
    # 获取手机号文本框
    phone_text = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/li")))
    # 填写手机号文本框
    phone_text.send_keys("12345678900")
  • 相关阅读:
    java 小数点取2位并且四舍五入
    批处理(.bat脚本)基本命令语法
    vue-webpack项目本地开发环境设置代理解决跨域问题
    vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题
    用vue构建多页面应用
    单页面应用和多页面应用对比分析
    html5文件读取+按钮样式重置+文件内容预览
    FileReader读取文件详解
    vue的双向数据绑定实现原理
    译:9.使用Redis进行消息传递
  • 原文地址:https://www.cnblogs.com/testlearn/p/11432339.html
Copyright © 2011-2022 走看看