• xcode 编译webdriveragent


    IOS 自动化环境搭建

    xcode配置

    1. 下载WebDriverAgent

    https://github.com/appium/WebDriverAgent

    1. 打开项目,找到WebDriverAgent.xcodeproj,双击打开

    2. 配置开发者账号,自己的AppleID也可以

    打开code配置

    新增账号

    选择AppleID

    添加自己的AppleID当开发者账号使用

    找到配置文件

    选择自己的开发者账号

    找到要编译的报名修改

    修改编译的包ID,需要区分,不然会报错

    选择编译的项目

    选择自己的手机

    编译

    成功之后,需要等会,直到手机出来webdriveragentrunner图标

    如果编译需要输入登录密码,这个密码是电脑的登录密码,不是AppleID的密码,如果输入后无效,往下看

    打开钥匙串,找到Apple Apple Development,选择始终信任,输入电脑登录密码,然后再打开这个,改回使用系统默认,再次输入电脑登录密码。然后再进行编译(怀疑是xcode的bug)

    原理:通过iOS手机上的webdriveragent在手机上通信,使用过tidevice启动webdriveragent,通过HTTP的方式,然后使用封装好的wda框架,对APP进行点击等操作,和Android 的atx原理一致

    macaca 查看元素:https://www.jianshu.com/p/2ec6f0a1f45a

    1. 需要一个iOS手机,并安装webdriveragent---(找鹏龙装,还需要找iOS开发把手机uuid加入到到公司的开发者账号里面)

    2. 安装阿里云第三方Python包,通过这个包,可以不需要Mac电脑,只需要有Python环境即可:https://github.com/alibaba/taobao-iphone-device

    Python3.7+

    pip3 install -U tidevice

    tidevice version 安装后查看版本号

    启动webdriveragent

    tidevice wdaproxy -B com.julive.WebDriverAgentRunner.xctrunner --port 8200

    参数说明:第一个参数是我们用的包,类似pip

    第二个参数包涵了两个命令:Run XCTest和Relay,run xctest 相当启动webdriver,relay做端口转发,从手机上的端口转发到电脑上的端口

    第三个参数-B 系统参数,类似于有这个参数知道后面还有其他参数

    第四个参数 com.julive.WebDriverAgentRunner.xctrunner这是通过xcode打的一个iOS应用,到时候会通过这个应用通信, --port 8200 端口号,默认从手机的8200端口转发到电脑上的8200端口,需要用自己手机上的包名,不是同一个人打包的,报名也不一样

    如下表示启动成功。

    通过浏览器访问:http://localhost:8200/ 能访问即可

    1. 启动实例

    启动实例我们使用facebook-wda,https://github.com/openatx/facebook-wda

    wda 是atx的衍生产品,和Android的atx同源,非Facebook官方项目,这里可以不用appium了

    import time

    import wda

    c = wda.Client("http://localhost:8200/") # 连接

    print(c.status) # 打印状态

    with c.session('com.netease.cloudmusic') as s: # 打开APP

    time.sleep(10)

    print(s.orientation)

    s(text='我的').tap() # 点击

    time.sleep(3)

    s(text='播客').get().value # 获取value

    print(s(text="播客").exists) # 判断元素是否存在

    time.sleep(3)

    e = s(text='云村').get(timeout=10.0) # 找元素,等10秒

    time.sleep(3)

    e.tap() # 找到后点击

    time.sleep(5)

    4.常用命令

    tidevice list 列出连接设备

    # 安装应用 $ tidevice install example.ipa

    # 指定设备安装 $ tidevice --udid $UDID install https://example.org/example.ipa

    # 卸载应用 $ tidevice uninstall com.example.demo

    # 启动应用 $ tidevice launch com.example.demo

    # 停止应用 $ tidevice kill com.example.demo

    # 查看已安装应用 $ tidevice applist

     

     

     

     

     

    学习最大的乐趣在于分享,我是绝世老中医,欢迎来诊 个人qq:1978529954
  • 相关阅读:
    网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、RSS、VXLAN
    pve5下的iptables案例分析-无法访问input相关端口
    linux mail相关-涉及windows下nslookup使用
    qemu的vnc选项-参考至qemu wiki
    windows任务管理器-线程优先级
    在proxmox中模拟树莓派
    unzip命令的使用
    fdisk分区遇到的问题-涉及lv逻辑卷扩容
    fail2ban(1)
    Different Integers 牛客网暑期ACM多校训练营(第一场) J 离线+线状数组或者主席树
  • 原文地址:https://www.cnblogs.com/jueshilaozhongyi/p/14602216.html
Copyright © 2020-2023  润新知