当前位置: 首页 > news >正文

一文搞懂Android应用元素查看器(Appium+Appium-inspector)——定位微信布局元素

  • Appium和Appium Inspector是怎么协作的呢?
  • Appium 与 Appium Inspector 的版本匹配
  • Appium安装
  • 启动appium服务
  • 安装Appium inspector客户端
  • 查看安卓真机指定app布局元素(这里以微信为例,需要保持与模拟器或真机一直连接)
  • 【QA】解决顶部工具栏上Refresh Source & Screenshot按钮点击后一直处于Loading状态,无法加载页面问题
  • 总结

Appium 是一个开源的自动化测试工具,它支持多种语言和平台,用于移动应用(包括原生、混合和Web应用程序)的自动化测试。Appium 通过客户端和服务器架构,接收客户端请求,并使用WebDriver协议与移动设备进行通信,执行测试脚本所需的操作。Appium 使用的WebDriver协议是基于Selenium WebDriver的,它定义了一个服务端/客户端协议(也称为JSON Wire Protocol),使得使用任何语言编写的客户端都可以向服务端发送请求。
而Appium Inspector 是 Appium 的 可视化元素检查工具,用于定位移动应用 UI 元素并生成定位符(如 XPath、ID)。Appium Inspector 主要核心功能有:

  • 元素层级查看:以树形结构展示应用 UI 控件的层级关系。
  • 属性获取:点击元素即可获取其属性(如 resource-id、text、bounds)。
  • 定位符生成:自动生成 XPath、CSS 选择器等定位表达式。
  • 操作录制:记录用户点击、滑动等操作并导出为测试脚本(部分版本支持)。

Appium和Appium Inspector是怎么协作的呢?

每个步骤都是怎么安装部署、以及配置使用的呢,在之后的篇幅将会逐一得到解决;

  1. 启动 Appium Server:确保服务运行在指定端口(默认 4723)。
  2. 通过Appium Inspector连接和配置设备/模拟器:通过 Desired Capabilities 配置设备信息。
  3. 实时检查元素:在 Inspector 中操作设备,动态查看元素属性。

Appium 与 Appium Inspector 的版本匹配

客户端与服务端版本选择也很重要,否则很有可能会导致这两者无法协同工作;

  • Appium 1.x:使用 Appium Desktop,一般都内置 Inspector无需安装客户端可以直接使用。
  • Appium 2.x:需独立安装 Appium Inspector
    • 命令行可以通过以下方式安装插件,然后在启动时加上参数设置inspector

      # 安装 Inspector 插件
      appium plugin install --source=npm @appium/inspector
      # 启动时加载插件
      appium --use-plugins=inspector
      
    • 【推荐】也可以前往官网(https://github.com/appium/appium-inspector/releases)下载对应的客户端进行安装;

其中Appium与Appium Inspector版本对应关系,一般在安装选择最新版本即可

AppiumInspector备注
1.22.xAppium Desktop 1.22.x该版本及之前版本不再维护,仅适用旧项目
2.0+Appium Inspector 2023.x该版本及之后版本需独立安装【推荐】

Appium安装

首先打开终端利用yarn安装appium服务
可以不用yarn命令,也可以先用你自己的熟悉的环境安装yarn(npm install --global yarn、brew install yarn)

yarn global add appium

后面在连接Android模拟器或真机时需要用到uiautomater2驱动,所以这里要先安装它;这里前面最好加上sudo以管理员权限运行,否则有可能会安装失败;

sudo appium driver install uiautomator2

可以通过以下命令查看哪些驱动已安装成功,哪些驱动未安装;根据自己需要访上面一步,选择安装需要的驱动即可;

appium driver list#其它驱动安装命令
sudo appium driver install xcuitest
sudo appium driver install espresso
sudo appium driver install mac2
sudo appium driver install windows
sudo appium driver install safari
sudo appium driver install gecko
sudo appium driver install chromium

在这里插入图片描述
经过以上这些步骤appium服务就算安装完成了;有了appium服务下面我们该怎么启动?通过命令行启动时如何去设置相应的参数?继续往下看了解更多appium参数设置和启动方式。

启动appium服务

一般情况下通过以下命令方式启动即可,表示允许任何来源地址(即允许cors跨域)且默认使用uiautomator2驱动启动;appium服务默认绑定0.0.0.0:4723,后面Appium-inspector客户端连接地址为127.0.0.1:4723(当然也可以通过下面给出的参数重新设置绑定地址)

相关文章:

一文搞懂Android应用元素查看器(Appium+Appium-inspector)——定位微信布局元素

Appium和Appium Inspector是怎么协作的呢?Appium 与 Appium Inspector 的版本匹配Appium安装启动appium服务安装Appium inspector客户端查看安卓真机指定app布局元素(这里以微信为例,需要保持与模拟器或真机一直连接)【QA】解决顶部工具栏上Refresh Source & Screensho…...

matlab质子磁力仪传感器线圈参数绘图

1、内容简介 matlab134-质子磁力仪传感器线圈参数绘图 可以交流、咨询、答疑 2、内容说明 略 线圈是质子磁力仪传感器的核心,其品质直接影响着仪器的测量精度 。 结合反向串联圆柱体线圈模型,对约束设计 的因素进行分析; 建立约束参数与设计参数之间…...

WPF快速创建DeepSeek本地自己的客户端-基础思路版本

开发工具:VS 2015 开发环境:.Net 4.0 使用技术:WPF 本篇文章内容: 本地部署DeepSeek以后一般使用网页工具(如Chatbox)或者DOS窗口与其对话。本篇文章使用WPF创建一个基础版的对话工具。 一、搭建本地DeepS…...

FreeRTOS第12篇:系统的“绿色通道”——中断管理与临界区

文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“紧急电话” 想象你正在主持一场重要会议:大部分时间按议程推进(任务执行),但偶尔会有紧急来电(硬…...

SpringBoot+Vue+数据可视化的动漫妆造服务平台(程序+论文+讲解+安装+调试+售后等)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当今数字化高速发展的时代,动漫产业迎来了前所未有的繁荣,动漫…...

CentOS 7超详细安装教程(含镜像)

1. 安装前准备 1.1 CentOS简介 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是一种基于 Red Hat Enterprise Linux(RHEL)源代码构建的免费开源操作系统。它在稳定性、安全…...

一种棋牌网游的玩法

起因 俺是个记性不好的人,经常记不住牌,所以很少能赢。于是俺就写了个程序来记录出过的牌。 开始 因为是网游,所以就开始监听网络包。因为不需要改网络包,所以俺就选择了cap_ip。cap_ip是一个通过设置网卡混乱模式来监听网络包…...

9.综合调试|输入不能存在空格|desc存在None|输出权值和ID|函数重名|修改文件名|权值和实际关键词出现次数(C++)

输入不能存在空格 目前输入的关键词时每隔一空格内容分别进行搜索&#xff0c;大部分时候我们都是将一串包含空格的内容直接进行搜索&#xff0c;需要将代码改进。 将cin换为fgets #include "searcher.hpp" #include <iostream> #include <cstdio> #in…...

使用SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS排查mysql锁等待问题

现象&#xff1a; mysql 查某表一直不能结束&#xff0c;查别的表没有问题。已知之前刚刚alter此表想把它的一个字段长度增长&#xff0c;但是这个操作一直没有结束。现在应该怎么办? 方案: 使用 SHOW PROCESSLIST; 查看当前所有活动的SQL线程&#xff0c;找出是否有长时间…...

ElasticSearch映射分词

目录 弃用Type why 映射 查询 mapping of index 创建 index with mapping 添加 field with mapping 数据迁移 1.新建 一个 index with correct mapping 2.数据迁移 reindex data into that index 分词 POST _analyze 自定义词库 ik分词器 circuit_breaking_excep…...

JVM——堆的回收:引用计数发和可达性分析法、五种对象引用

目录 引用计数法和可达性分析法 引用计数法&#xff1a; 可达性分析算法&#xff1a; 五种对象引用 软引用&#xff1a; 弱引用&#xff1a; 引用计数法和可达性分析法 引用计数法&#xff1a; 引用计数法会为每个对象维护一个引用计数器&#xff0c;当对象被引用时加1&…...

PosgreSQL比MySQL更优秀吗?

一日&#xff0c;一群开发者对PosgreSQL是不是比MySQL更优秀进行了激烈的辩论&#xff0c;双方吵的都要打起来了 正方有以下理由&#xff1a; PostgreSQL严格遵循SQL标准规范&#xff0c;相较MySQL在语法兼容性和功能完整性方面展现出更强的体系化设计&#xff0c;尤其在事务处…...

冒险岛079 V8 整合版源码搭建教程+IDEA启动

今天教大家来部署下一款超级怀旧游戏冒险岛&#xff0c;冒险岛源码是开源的&#xff0c;但是开源的代码会有各种&#xff0c;本人进行了加工整合&#xff0c;并且用idea进行了启动测试&#xff0c;经过修改后没有任何问题。 启动截图 后端控制台 前端游戏界面 声明 冒险岛源码…...

基于Python的Flask微博话题舆情分析可视化系统

2024数据 ✅️标价源码 远程部署加 20 ✅️爬虫可用 有六月数据 ✅️修复bug不会突然打不开网页 系统稳定 系统的功能如下: 1.数据的爬取 2.用户的登录注册 3.热词统计&#xff0c;舆情统计 4.文章统计分析 5.发布地址统计 6.评论统计 7.情感分类统计 编程语言&#xff1a;py…...

ms-swift3 序列分类训练

目录 引言 一、数据集准备 二、训练/推理代码 2.1 训练 2.2 推理 三、性能验证 引言 swift 3.x支持了序列分类Command Line Parameters — swift 3.2.0.dev0 documentation 想尝试一下用多模态&#xff08;图像&#xff09;的序列分类与普通的图像分类任务有啥区别 一、…...

VSCode 实用快捷键

前文 VSCode 作为文本编辑神器, 熟练使用其快捷键更是效率翻倍, 本文介绍 VSCode 常用的实用的快捷键 实用快捷键 涉及到文本操作, 搜索定位, 多光标, 面板打开等快捷键 功能快捷键复制光标当前行 (不需要鼠标选中) Ctrl C 剪切光标当前行 (不需要鼠标选中) Ctrl X 当前行下…...

MVC模式和MVVM模式

目录 一、MVC模式和MVVM模式 1. MVC模式 2. MVVM 模式 3.在Qt中的应用示例 4.总结 二、MVC与MVVM模式的共同点和区别 1.共同点 2.区别 3.交互流程 4.总结 MVC&#xff08;Model-View-Controller&#xff09;和MVVM&#xff08;Model-View-ViewModel&#xff09;是两种…...

CSS伪类选择器全解析:让你的样式更加灵活和智能

目录 前言 一、什么是伪类选择器&#xff1f; 二、常见的伪类选择器详解 1. :hover —— 悬停状态 2. :active —— 活动状态 3. :focus —— 焦点状态 综合案例 4. :first-child —— 第一个子元素 5. :last-child —— 最后一个子元素 6. :nth-child(n) —— 按顺序选…...

【GESP】2024年12月图形化一级 -- 飞行的小猫

飞行的小猫 1. 准备工作 &#xff08;1&#xff09;删除默认小猫角色。 &#xff08;2&#xff09;添加角色Cat Flying和Clouds。 &#xff08;3&#xff09;删除默认白色背景&#xff0c;添加背景Blue Sky 2。 2. 功能实现 &#xff08;1&#xff09;点击绿旗&#xff0c…...

30填学习自制操作系统第二天

今天要干什么&#xff1f; 初步了解汇编语言使用汇编重新写个昨天的镜像文件继续开发 一: 什么是电信号&#xff1f; 电脑的处理中心是CPU&#xff0c;即“central process unit”的缩写&#xff0c;翻译成中文就是“中央处理单元”&#xff0c;顾名思义&#xff0c;他就是…...

大语言模型知识同质性解析与工业级优化方案

1. 大语言模型知识同质性现象解析第一次注意到这个现象是在调试GPT-3的生成结果时——当我用不同表述方式询问同一个专业问题时&#xff0c;模型给出的回答在核心论点和论据上呈现出惊人的一致性。这种"千人一面"的知识输出特性&#xff0c;后来被学界正式定义为&quo…...

LiteAttention:扩散模型中的高效稀疏注意力优化方案

1. 项目背景与核心价值在生成式AI领域&#xff0c;扩散模型&#xff08;Diffusion Models&#xff09;已经成为图像合成的主流架构之一。然而&#xff0c;随着模型规模的扩大&#xff0c;传统Transformer架构中的注意力机制&#xff08;Attention&#xff09;计算复杂度呈平方级…...

如何在Windows上轻松安装APK文件:APK Installer完整使用指南

如何在Windows上轻松安装APK文件&#xff1a;APK Installer完整使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows上安装安卓应用而烦恼吗&#xf…...

AUTOSAR网络管理参数配置避坑指南:T_NM_MessageCycle、N_ImmediateNM_TIMES这些值到底怎么设?

AUTOSAR网络管理参数配置实战解析&#xff1a;从理论到工程落地的关键考量 在汽车电子电气架构日益复杂的今天&#xff0c;AUTOSAR网络管理作为整车通信系统的"交通指挥官"&#xff0c;其参数配置的合理性直接关系到整车能耗表现、网络稳定性和系统响应速度。本文将聚…...

Equalizer APO终极指南:3个简单步骤让你的电脑音频焕然一新

Equalizer APO终极指南&#xff1a;3个简单步骤让你的电脑音频焕然一新 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo 你是否曾经觉得电脑播放音乐时低音不够震撼&#xff1f;看电影时人声模糊不清&am…...

Taotoken 标准 OpenAI 协议兼容性带来的分钟级接入体验

Taotoken 标准 OpenAI 协议兼容性带来的分钟级接入体验 1. 协议兼容性的技术实现 Taotoken 平台通过严格遵循 OpenAI 的 API 规范&#xff0c;实现了协议层面的完全兼容。这种兼容性体现在 HTTP 请求方法、请求头、请求体结构和响应格式等多个维度。开发者使用标准的 OpenAI …...

自动驾驶点云标注效率提升400%:用Python自建半自动标注流水线,含3D框+实例分割+动态滤波模块

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;自动驾驶点云标注的工程挑战与技术演进 点云标注是自动驾驶感知系统训练的关键前置环节&#xff0c;其质量直接决定3D目标检测、语义分割与BEV&#xff08;Bird’s Eye View&#xff09;建模的泛化能力…...

终极免费暗黑2存档编辑器:5分钟掌握游戏角色定制与装备管理

终极免费暗黑2存档编辑器&#xff1a;5分钟掌握游戏角色定制与装备管理 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为《暗黑破坏神2》中重复刷装备而烦恼吗&#xff1f;想要快速体验不同角色build却不想花数百小时&…...

Java多租户数据隔离实战指南:从Schema分离到动态SQL过滤的7种生产级方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Java多租户数据隔离的核心原理与安全边界 Java 多租户系统中&#xff0c;数据隔离是保障租户间信息不可见、不可篡改的生命线。其核心原理在于**在数据访问层强制注入租户上下文**&#xff0c;确保每次…...

【Netty高性能网络框架解析系列】系列文章之四大高性能特性之内存池化技术(3)

netty的内存管理和内存池化设计Netty 内存池设计Netty为什么用内存池化设计&#xff1a;Netty管理内存整体架构Jemalloc 内存分片算法和结构内存分配的组件架构图如下&#xff1a;Netty分配器类结构层次关系如下&#xff1a;PooledByteBufAllocator 分配器Netty 内存池设计 Ne…...