Macaca App-Inspector 元素定位工具(搭建使用)

2024-09-03 20:38

本文主要是介绍Macaca App-Inspector 元素定位工具(搭建使用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、环境要求

nodejs

macaca-cli

homebrew

carthage

xcode

app-inspector

二、安装

(一)homebrew

下载地址:macOS(或 Linux)缺失的软件包的管理器 — Homebrew

(二)macaca-cli

npm install macaca-cli -g

(三)nodejs

brew install node#国内访问外网比较困难,需要切换到淘宝源
npm install -g cnpm  -registry=https://registry.npm.taobao.org 

(四)carthage

brew install carthage

carthage用于安装依赖,具体在app-inspector目录下XCTestWD的依赖。

比如:

/Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-inspector/node_modules/xctestwd

因为npm install app-inspector -g 完成安装后会需要切到目录下安装node_modules/xctestwd的carthage依赖

(五)gradle

brew install gradle

gradle环境用于Android系统

(六)XCode安装

安装Xcode,从Appstore下载即可,有时候官方来不及更新,会出现XCode与app-inspector依赖版本不一致导致无法正常运行XCTestWD项目

(七)安装app-inspector

模拟器执行

npm install app-inspector -g

 【真机执行

安装有 TEAM_ID 的 app-inspector

# cnpm
DEVELOPMENT_TEAM_ID=2RXG6C9738 cnpm i app-inspector -g# npm
DEVELOPMENT_TEAM_ID=2RXG6C9738 npm i app-inspector -g

1.XCTestWD.xcodeproj重签名

(1)安装依赖

cd /Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-inspector/node_modules/xctestwdcarthage.sh bootstrap --platform iOS --cache-builds

(2)执行下面命令

cd /Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWDopen XCTestWD.xcodeproj

或XCode打开XCTestWD.xcodeproj,双击打开node_modules目录下的XCTestWD.xcodeproj文件

(3)配置Team、启动自动化、更改包名

原包名Bundle Identifier:XCTestWDRunner.XCTestWDRunner.liyinchideMacBook-Pro.local

更改为iOS公司测试包名???

Project看不到Test话,切换Scheme到XCTestWDUITests 

 

XCTestUI项目,默认端口是8100,故app-inspector启动端口也需要是8100

(4)edit schema

指定执行包

备注:需要Debug包才可以,和配置的Bundle Iden

这边包名要改成测试包名一致???比如好慷在家Bundle Identifier

 

(八)获取设备号

idevice_id -l

(九)app-inspector

1.获取TEAM_ID

XCTestWD》TARGETS》signing &capabilities

获取TeamID

 使用公司的开发团队权限(要让iOS开发邀请你的Apply ID加入developer team中,登录邮箱确认邀请)

启动app-inspector

app-inspector -u 00008020-0019481611D8003A --verbose

(十)获取元素

(十一)常见问题

1.XCTestWD中报错'No such module'Swifter''

原因:XCTestWD依赖没有安装成功

解决办法:(无效)

# 先定位到XCTestWD的目录中
cd /Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD# 更新carthage
carthage update

执行carthage update构建失败

原因:XCTestWD项目与最新Xcode版本不兼容,需要等xudafeng更新,重新克隆XCTestWD新项目、重新安装app-inspector(有效)

从报错上面来看,由于当前版本是0.30.1 而最新版是0.38.0

解决办法:(无效)

https://github.com/macacajs/XCTestWD/pull/193

我重新安装了carthage,还是不行

brew install carthage

 参考:Carthage安装与使用(2018.12.4更新) - 简书

提示carthage已经安装最新版,只是没有链接

 解决办法:

brew link carthage

提示需要删除”/usr/local/bin/cathage“这个文件夹路径

解决办法:

sudo rm '/usr/local/bin/carthage'

 

 删除指定目录路径后,重新执行

brew link carthag

 回到之前那步carthage update

cd /Users/liyinchi/TestTool/node-v12.18.3-darwin-x64/lib/node_modules/app-inspector/node_modules/xctestwdcarthage update

 

3.报错”No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier “com.facebook.xctweb-driver-agent” were found.“

解决办法:

xcode》preferance》account中点击 view detail,然后,重新download

这篇关于Macaca App-Inspector 元素定位工具(搭建使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133992

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式