zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/jueshilaozhongyi/p/14602216.html
Copyright © 2011-2022 走看看