• APP 自动化相关


    以下内容涉及的系统环境(已安装好): macOS 版本11.8,JDK 1.8,Xcode(Version 13.0) , Appium(App Version: 1.22.0 Electron: 7.3.3 Node.js: 12.8.1)

    ------ iOS ------

    其中:

    Xcode 从 App Store 中安装即可

    appium-desktop   链接: https://pan.baidu.com/s/1JLbs75kbPDC8D-u3UOtCXA    提取码: 7m9j 

    1.WebDriverAgent安装、编译和appium使用。
    其中提及的 Development Team 配置建议找公司的开发人员设置下,注意 deployment target 的版本号和目标手机的iOS系统版本号一致。
    参考:
    https://blog.csdn.net/qq_41030861/article/details/110528139

    连接

    调试代码

    from appium import webdriver
    from time import sleep
    
    desired_caps = {}
    # 平台类型
    desired_caps["platformName"] = "iOS"
    # 手机操作系统的版本
    desired_caps["platformVersion"] = "12.3"
    # 设备名称
    desired_caps["deviceName"] = "iPhone X"
    # 被测应用的 bundle ID 。
    # 用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。
    desired_caps["bundleId"] = "找开发人员要一下"
    # 连接的真实设备的唯一设备编号,获取方式https://www.jianshu.com/p/c44d5c3424be
    desired_caps["udid"] = "自己的设备编号"
    #在当前 session 下不会重置应用的状态,默认值为 false
    desired_caps["noReset"] = True
    
    # 连接 appium server
    # 前提:appium desktop 要启动,有监听端口;将 desired_caps 发送给 appium server 打开app
    driver = webdriver.Remote('http://127.0.0.1:4727/wd/hub', desired_caps)

    2.iOS,APP上的元素定位。

    WEditor 工具

     1)终端中输入 pip install weditor 安装weditor

     2)启动weditor,执行python -m weditor

     3)连接手机,输入 ip地址,点击connect ,出现小麦穗,点击Dump Hierarchy

      

    我的电脑上发现此工具对于 iOS 里的 APP 定位框有些问题(Android 没问题),见下图,所以我采用了另一个工具来定位 iOS 里的 APP上的元素

    Macaca App Inspector 工具

     1)安装

      参考:

      https://macacajs.github.io/guide/environment-setup.html#ios-real-device

     2)启动

      查看iOS udid: idevice_id -l

      终端中执行:app-inspector -u DEVICE-ID (上一步获取的设备ID号)

      等待自动打开浏览器窗口,打开后如下图所示,建议把浏览器的窗口最大化,否则可能会出现页面展示不完整问题

    ------ Android ------

    参考:

     https://blog.csdn.net/hsh881025/article/details/108211914

     https://www.freesion.com/article/1958603787/

    调试代码

    from appium import webdriver
    from appium.webdriver.common.mobileby import MobileBy
    from time import sleep
    
    desired_caps = {}
    # 平台类型
    desired_caps["platformName"] = "Android"
    # 手机操作系统的版本
    desired_caps["platformVersion"] = "6.0"
    # 设备名称
    desired_caps["deviceName"] = "Android Emulator"
    # app包名
    desired_caps["appPackage"] = "APP包名"
    # app入口activity
    desired_caps["appActivity"] = "app入口activity"
    #在当前 session 下不会重置应用的状态,默认值为 false
    desired_caps["noReset"] = True
    
    # 连接 appium server
    # 前提:appium desktop 要启动,有监听端口;将 desired_caps 发送给 appium server 打开app
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    其他:

      1)连接夜神模拟器  adb connect 127.0.0.1:62001

      2)查看包名和运行的 activity,使用 adb 命令查看,如下:
      adb shell "dumpsys window | grep mCurrentFocus"

      3)获取应用包名和入口的 activity
      aapt dump badging 包的路径

      4)列出所有包名

      adb shell pm list package

      5)微信小程序,微信/qq有很多的进程,我们要确定当前web页面是位于哪个进程中

      adb shell dumpsys activity top | grep ACTIVITY
      adb shell ps pid号

      6)启动 Appium 自带的元素定位工具 UI Automation Viewer(个人不推荐使用)

      进入所在目录,我的是:cd /Users/用户名/Library/Android/sdk/android-sdk-macosx/tools

      启动  ./uiautomatorviewer

      7)重要,运行用例遇到 Appium 报错时尝试执行以下命令,然后再重新运行用例

      python -m uiautomator2 init

    A wise man thinks all that he says, a fool says all that he thinks.
  • 相关阅读:
    什么是“QQ登录OAuth2.0”
    访问ashx一般应用程序
    TCP协议三次握手过程分析(改)
    插入排序法
    选择排序法
    笔记-几何法解决三点定圆问题
    题解-bzoj4320 Homework
    题解-BOI 2004 Sequence
    博客-暂时搁置
    题解-CTSC2012 熟悉的文章
  • 原文地址:https://www.cnblogs.com/BernieChen/p/15479530.html
Copyright © 2020-2023  润新知