记忆碎片之python定位APP节点

python之查找节点 #usr/bin/python #-*-coding:utf-8-*- ''' xml解析 dom html js document 学校 商学院 法学院 电子学院 计算机学院 软件 网络 数据 网1 网2... 阅读详情
cmd里面运行:
netstat -ano | findstr "PID进程号码"
PID进程号在任务管理器里面获取

第一台是127.0.0.1:62001
第二台是127.0.0.1:62025
使用:adb connect 127.0.0.1:62001  进行连接 需要打开开发者选项
先启动adb start-server 再启动模拟器

# 多台设备的时候,需要再cap里面设置udid,用来识别设备
# 还需要再服务的设置bootstrap port
adb -s 127.0.0.1:62025 install tantan.apk   安装应用
adb uninstall tantan.apk 卸载应用

# package及activity的获取
#通过android sdk工具来,在sdk里面有一个工具,叫做aapt,我们可以直接通过这个工具来,
在命令行输入:aapt dump badging xxxx.apk,后面这个xxx.apk文件是我们aok所在的绝对路径,
敲入之后那么可以显示出来相关信息,可以在里面仔细找了,packageName、lanuchActivity这两个字端,
一个在开始1、2行一个在中间部分。

# appium使用xpath的定位比较慢,还有层级定位--------------------------------
element = driver.find_element_by_id("cn.com.open.mooc:id/rv_child")
element.find_element_by_class_name("android.widget.FrameLayout").click
# list定位----------------------------------------------------------------
element = driver.find_element_by_id("cn.com.open.mooc:id/rv_child")
elements = element.find_elements_by_class_name("android.widget.RelativeLayout")
for ele in elements:
  # 这里还可以对元素做if判断,符合要求的再进行相应的操作
  ele.click()
  # 如果判断没有需要的元素,可以滑动操作
  # self.driver.swipe(x1, y1, x2, y1, duration=1000)
  # 如果需要定位某一个元素,却没有准确的节点可以参考时,可以直接使用点击某一点来定位
  # self.driver.tap([(40, 1090)], 500)  注意,如果更换手机,需要注意屏幕分辨率,可应用九宫格解锁
# 类似网页Frame  App里面是contexts  就是内嵌H5定位hybrid---------------------
#获取当前页面所有的contexts
webview = driver.contexts
#在获取到的contexts list里面去挨个循环
for context in webview:
    #判断循环中单个的context是否是webview,如果是就进行切换,并且跳出循环
  if 'WEBVIEW' in context:
    driver.switch_to.context(context)
    break
driver.find_element_by_link_text('PHP').click()

# uiautomator定位   根据一定条件来查找元素,我们这里的条件就是text属性为“请输入手机号”
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().text("请输入手机号")')
ele.send_keys("123")
#另外new UiSelector().text("请输入手机号")'是text定位,还有className、id等定位

# 模糊定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().textContains("请输入手")')
ele.send_keys("123")

# 正则匹配定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^请输入手.*")')
ele.send_keys("123")

#resourec-id定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("cn.com.open.mooc:id/et_phone_edit")')
ele.send_keys('234')

# 通过id进行正则匹配定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".+et_phone_edit")')
ele.send_keys('234')

# className定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.EditText")')
ele.send_keys('234')

# classNameMatches正则定位
ele = self.driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches (".*EditText")')
ele.send_keys('234')

# 链式点击 如九宫格解锁
TouchAction(self.driver).press().move_to().move_to().release().perfrom()
# TouchAction的原理是将一系列的动作放在一个链条中
# 第一个动作呢?就是去点(用到press),只有点了开始点之后我们再将我们的动作移动到下一个点(move_to),
然后依次类推,当我们将所有的点都执行完毕之后就需要松开我们的点(release),然后进行提交(perform)
from appium.webdriver.common.touch_action import TouchAction
TouchAction(self.driver).press(x=217,y=600).move_to(x=0,y=150).wait(1000).move_to(x=0,y=150).wait(1000).move_to(x=113,y=0).move_to(x=113,y=0).release().perform()

# https://www.cnblogs.com/yaoqingzhuan/p/12902176.html    selenium-->ActionChains和appium-->TouchAchtion的区别





python操作手机app超详细步骤 可以使用系统自带的os库即可也可以使用subprocess库操作import os, timedef execute(cmd): command = “adb shell {}”.format(cmd) print(command) os.system(command)if name == ‘main’: # 启动王者荣耀app execute(‘am start -n com.tencent.wangzherongyao’) time.sleep(1) # 点击app中的某个位置 execute(‘inp 阅读详情

相关推荐

Claude Code AI记忆系统开发实战指南

AI记忆系统是构建持续学习型对话系统的核心技术,通过结构化存储用户交互数据实现上下文感知。其核心原理结合了向量数据库的语义检索能力和关系型数据库的事务特性,在PostgreSQL+pgvector的技术栈中,向量索引(ivfflat)和余弦相似度计算实现了高效记忆检索。这种混合架构相比纯向量数据库方案可降低40%查询延迟,在个性化推荐、智能客服等场景展现显著优势。Claude Code框架通过短期/中期/长期三级记忆体系,配合Python SDK和VS Code开发工具链,为开发者提供了完整的AI记忆系统实

weixin_34208283的博客 376

uni-app(节点信息)

类选择器名称一样的另一个盒子 </view><view class="box">获取这个盒子的宽高、位置等信息</view><view class="box">获取这个盒子的宽高、位置等信息</view><view class="box">获取这个盒子的宽高、位置等信息

mengmoyong的博客 3195

Cognee开源项目:为AI Agent构建智能长期记忆系统

这次我们来看一个为AI Agent注入长期记忆的开源项目——Cognee。它不是一个简单的聊天记录存储器,而是一个旨在解决AI“金鱼脑”问题的智能记忆管理系统。简单来说,它能让你的AI助手记住过去的对话、你的偏好、甚至从交互中主动学习,从而提供更连贯、更个性化的服务。这个项目之所以备受关注,不仅因为其技术理念,更因为它获得了OpenAI创始人的投资,这无疑为其在AI Agent生态中的潜力投下了信任票。 对于开发者而言,Cognee的核心吸引力在于其“开箱即用”的集成能力和对复杂记忆场景的处理。它不是一个需

weixin_34163553的博客 442

Python自动化爬取App数据

欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

优快云_430422的博客 945

Hermes Agent如何实现AI的长期记忆与技能进化

AI Agent的核心挑战在于突破单次会话限制,实现跨任务的知识继承与经验复用。长期记忆并非简单存储聊天记录,而是通过精准召回、有界压缩与冻结快照等工程机制,将用户偏好和领域知识转化为可检索、可推理的认知资产;技能进化则依赖真实工作流驱动的‘感知-决策-执行-反思-沉淀’闭环,将人工修正固化为自然语言描述的可解释技能文档。这种设计兼顾LLM的能力边界与工程可控性,已在飞书会议纪要整理、文档协同审阅、知识高光提取等典型办公场景中验证有效性,成为面向真实生产力的Agent落地范式。

dianxiangong2403的博客 316

Lybrary:基于AST与MCP协议,为AI Agent构建持久化代码记忆系统

在AI辅助编程领域,检索增强生成(RAG)是连接大语言模型与外部知识库的关键技术。其核心原理是通过向量化检索,将相关信息注入模型上下文,以突破其固有知识局限。该技术的核心价值在于,它能显著提升AI在特定领域(如代码理解)的准确性与实用性。然而,在处理复杂的代码库时,传统的基于文本片段的RAG方案面临挑战,难以理解代码的深层语义结构与依赖关系。Lybrary正是针对这一痛点设计的解决方案。它通过解析抽象语法树(AST),构建结构化的代码知识图谱,并基于新兴的模型上下文协议(MCP)为AI Agent提供持久化

weixin_30906185的博客 323

python修改app定位_APP自动化中三大定位工具

我们在做APP自动化的时候,定位是很重要的,就像做webUI自动化一样,但是个人觉得app定位比web要复杂点,毕竟app定位表达式写了之后并没有工具验证改表达式是唯一的,所以导致工作量很大今天主要总结下我们做app自动化需要用到的3大定位工具uiautomatorviewer这个工具是用我们安装的SDk工具里面自带的Android工具来定位的,这个工具并不需要我们自己安装,在我们打进adb环境的...

weixin_29029831的博客 2838

基于工作流引擎与向量数据库构建智能工作记忆系统

在软件开发和运维领域,日志记录与上下文管理是保障工作效率和问题追溯的基础。传统日志系统通常以线性、非结构化的方式记录信息,导致在复杂工作流中容易出现“上下文丢失”问题,难以回溯完整的操作链条。其核心原理在于通过会话管理、事件捕获和语义关联,将离散的操作记录转化为可查询的知识图谱。这一技术的核心价值在于实现工作流的自动化记忆与智能回溯,能显著提升问题排查、流程复盘和团队协作的效率。典型的应用场景包括分布式系统调试、多步骤部署流程跟踪以及日常开发操作的语义化检索。通过结合工作流引擎(如n8n)进行事件加工,并利

weixin_33901641的博客 365

MCP协议:AI Agent记忆架构的底层革命

AI Agent的持续性记忆能力,是其从对话工具跃升为可信协作者的核心前提。传统长上下文方案受限于注意力稀释、推理延迟与语义漂移,本质是线性内存堆叠;而Model Context Protocol(MCP)提出三维记忆拓扑——按时间、语义、权限组织信息,实现可插拔、可验证、可审计的记忆管理。它不依赖模型上下文长度,也不绑定特定数据库,而是通过Context Ingestor、Memory Router、State Manager和Forgetfulness Engine四大标准化组件,支撑RAG增强、任务连

weixin_30598225的博客 352

Python背记手册:从语法记忆到实战应用的进阶指南

Python学习过程中,语法知识的记忆往往比理解更具挑战。视频教程适合建立整体认知,但面对具体语法细节时检索效率不高;官方文档权威却难以按场景快速定位。一份按使用场景编排、支持快速检索的中文PDF背记手册,能将高频语法点转化为随时可调用的记忆模块。无论是基础控制流、函数参数、推导式,还是装饰器、生成器、新版类型注解,精炼的示例与版本标注都能显著降低遗忘概率。通过“按需检索—手敲改参—关闭重写”的三遍阅读法,这些规则可以转化为稳定的实战能力。在日志清洗、报错定位、脚本编写等场景中,语法手册不再只是参考书,而是

weixin_27330481的博客 297

无线传感器网络各种定位仿真代码

很好的定位仿真代码,三角函数曲线(1) 实例2:三角函数曲线(2)大家请看一下哦

LLM智能体如何通过规划与情景记忆解决软件问题

在人工智能领域,智能体(Agent)是指能够感知环境、进行决策并执行动作以实现目标的系统。其核心原理在于通过规划(Planning)将复杂任务分解为可执行的步骤序列,并结合记忆(Memory)机制积累经验以实现持续学习。这种技术架构对于实现自动化运维和智能诊断具有重要价值,能够显著提升处理重复性、模式化软件问题的效率。在实际应用场景中,例如软件故障排查、持续集成流水线问题诊断等,具备规划与情景记忆能力的LLM智能体能够像经验丰富的工程师一样,通过检索历史案例(情景记忆)来优化解决方案,并动态调整执行路径。本

weixin_30698527的博客 508

CD-HIT的使用

继续我的生信笔记系列。从某网站的附带文献中读到该工具,搜索了一下,发现网上的大佬们都在讲如何用它去冗余,相对官方页面的介绍而言很是片面,于是刚好有聚类的需求的我准备对其全体功能做做实验,学习一下由李伟忠博士在伯纳姆研究所(现为桑福德伯纳姆医学研究所)亚当·戈兹克博士的实验室开发的牛工具。 首先是官方介绍: CD-HIT是一个非常广泛使用的程序,用于蛋白质或核苷酸序列的聚类和比较。最初由李伟忠博士在伯纳姆研究所(现为桑福德伯纳姆医学研究所)亚当·戈兹克博士的实验室开发,CD-HIT速度非常快,可以处理非常

一名学术waste的note pro 1万+

MemoRAG:面向业务连续性的动态记忆增强RAG架构

RAG(检索增强生成)作为当前企业知识应用的核心范式,其本质是解决大模型幻觉与知识滞后问题。但传统RAG采用无状态、单次检索机制,难以支撑需跨会话理解、时序推理和隐含意图识别的复杂业务场景。MemoRAG并非简单叠加缓存层,而是通过实体记忆、关系记忆与情境记忆三层协同,构建可演化、带时间戳、支持语义流动的动态知识索引。它融合轻量NER、依存句法驱动的关系抽取与分层编码的记忆单元,兼顾工程鲁棒性与推理可解释性。该方案特别适用于客服工单分析、CRM知识复用、政策动态追踪等强上下文依赖场景,显著提升首次解决率(F

weixin_34357928的博客 364

Isaac Gym摄像头数据获取全攻略:从CPU到GPU,教你实时显示RGB与深度图

本文详细介绍了在Isaac Gym中获取摄像头数据的两种高效方案:CPU模式与GPU张量模式。通过实战代码示例,展示了从摄像头配置、数据获取到实时可视化RGB与深度图的全流程,帮助开发者优化机器人仿真与计算机视觉应用的性能。特别强调了GPU模式下的零拷贝访问与张量运算优势,适用于需要低延迟处理的场景。

weixin_29056701的博客 387

Android Studio中把llama.cpp编译Android .so

本文介绍了一个在Android Studio中集成llama.cpp的最小Demo实现方案,通过JNI将llama.cpp编译为Android.so库,实现本地加载GGUF模型进行文本生成。文章详细说明了项目结构配置(SDK≥30,NDK≥28)、CMake编译设置、Kotlin-JNI-C++的完整调用链实现,以及模型文件部署方式。该Demo采用每次请求新建上下文的简化设计,包含加载模型、生成文本、资源释放等核心功能,并提供了错误排查建议。项目舍弃了上下文保持等复杂功能以确保稳定性,适合作为端侧大语言模型

Zhang Phil 513

Agent记忆系统设计:Runtime与Memory的共生架构

Agent记忆系统并非独立模块,而是与运行时(Runtime)深度耦合的底层基础设施。其核心原理在于Memory与Runtime构成闭环反馈系统:Runtime决定内存生命周期与快照时机,Memory反向约束执行确定性与数据主权。技术价值体现在支撑高可靠会话管理、跨进程状态恢复及多Agent协同,广泛应用于教育SaaS、金融风控、自动化测试等需长短期状态一致性的工程场景。本文聚焦hermes agent记忆机制与codex上下文记忆背后的Runtime共性设计逻辑,揭示memory.md corrupted

weixin_33785108的博客 465

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

Lapse:基于MCP的AI Agent共享记忆空间,让笔记成为Agent的持久化上下文

模型上下文协议(MCP)正在重塑AI Agent连接外部数据的方式。相比临时挂载数据库或浏览器工具,Agent真正缺乏的是一个跨会话、可共享的持久化记忆层。LLM本身无状态,每次对话都是全新开始,多Agent协作时更是各说各话。Lapse将笔记应用与MCP Server结合,让人类笔记和Agent状态写入同一空间,通过标准工具调用实现上下文的读取、写入与检索。这种设计适用于个人知识库、多Agent任务状态传递、工作流上下文管理等场景,让Agent即使重启或换模型,记忆依然存在。本文从环境准备、客户端接入、功

weixin_34115824的博客 340

关键!C#工业上位机界面设计终极指南:WinForm/WPF怎么选?【工业实战完整版,无废话选型+避坑+落地技巧】

工业上位机UI选型指南:WinForm与WPF核心对比 摘要: 本文基于工业实战视角,对比WinForm与WPF在工业上位机开发中的适用性。WinForm凭借GDI+原生渲染、极致兼容性(完美支持Win7/XP)、低资源占用和硬件底层调用优势,成为老旧工控机、简单监控系统和7×24小时运行设备的首选。WPF则依托DirectX硬件加速、MVVM架构和强大可视化能力,更适合复杂可视化大屏、3D模拟等高端场景及需要长期迭代的大型项目。核心选型原则是:优先考虑稳定性与兼容性,WinForm解决"能不能用

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 727

YOLOv8融合可变形注意力(DAT)实战教程:暴力涨点的科研级注意力机制优化方案

DAT的“可变形注意力”为目标检测的“精准特征捕捉”提供了全新思路,而YOLOv8的工程化优势让这种科研创新能快速落地到工业场景。希望这篇教程能帮你在“注意力机制优化+复杂场景检测”的痛点上找到突破口。如果你在实操中遇到“涨点不明显”的问题,不妨回到“DAT的采样点是否贴合目标形状”“注意力权重是否有效过滤背景”这些细节上找原因——科研的价值,就在于在细节打磨中推动技术进步。祝你在DAT与YOLOv8的结合探索中,既能做出有说服力的实验成果,又能沉淀出解决异形目标检测难题的实用经验。

know_F0727的博客 83

Model Context Protocol(MCP):为AI Agent构建可持久、可检索的外部记忆中枢

在大模型应用中,‘上下文’常被误等同于‘记忆’,但实际它是一次性消耗的临时缓冲区,无法支持长期、结构化、高精度的信息留存与复用。Model Context Protocol(MCP)作为一种协议层架构,通过解耦记忆存储、索引、调用与演化,使AI Agent首次具备类海马体的持久化记忆能力。其核心价值在于突破注意力机制的物理极限,以结构化Schema、混合索引、动态上下文组装和反馈闭环,实现跨会话、跨任务、跨Agent的经验积累。该方案不依赖模型重训,兼容Llama、Qwen、Claude等主流基座,已广泛应

weixin_33858485的博客 477

AI人工智能领域持续学习:提升技术能力的关键

在当今科技飞速发展的时代,AI人工智能已经渗透到我们生活的方方面面。本文章的目的就是帮助大家了解在AI人工智能领域持续学习的重要性,以及如何通过持续学习来提升自己的技术能力。文章会涵盖AI的核心概念、持续学习的原理和方法、实际应用场景等方面,让大家对AI领域的持续学习有一个全面的认识。本文首先会介绍AI人工智能的核心概念,让大家对这个领域有一个初步的了解。然后详细讲解持续学习的原理和方法,通过代码示例展示如何在实际项目中实现持续学习。接着会分析AI持续学习在不同场景的应用,推荐一些学习工具和资源。

AI 原生应用开发的博客 1288

微信数据自主权:用WeChatMsg永久保存你的数字记忆

你是否曾为手机内存告急而无奈删除珍贵聊天记录?是否担心系统升级后那些温暖的对话消失不见?是否渴望拥有属于自己的数字记忆库,而非受制于平台限制?在数字时代,我们的聊天记录早已超越简单的文字交流,成为个人记忆、情感连接和生活轨迹的珍贵载体。今天,我要为你介绍一款完全免费、开源的本地化工具——WeChatMsg,它将帮助你**夺回数据自主权**,实现微信聊天记录的永久保存与深度分析。 ## 为什么你的

gitblog_00918的博客 937

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2868

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ChatGPT原生记忆功能深度解析:上下文锚定与个人知识操作系统

大语言模型的‘记忆’能力正从外部RAG检索转向原生嵌入式存储,其核心是将用户对话压缩为带时效、领域与关系标签的语义快照,并直接注入模型KV缓存——这不仅降低延迟、提升指代消解准确率,更重构了人机协作范式。结合上下文锚定机制(Dynamic Anchoring Engine),AI能精准理解‘上次’‘这个’‘相关方案’等模糊指代,实现跨会话认知图谱构建。该技术已超越聊天辅助范畴,成为项目经理追溯需求链、教师构建学生能力图谱、开发者沉淀架构决策的个人数字工作台中枢。本文聚焦原生记忆(Native Memory)

weixin_30292843的博客 542

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 《封号码罗》python爬虫之抖音分享页破解字体反爬虫进阶实战(六)
下一篇: 记忆碎片之python在虚拟环境APP自动化时Windows10定时任务
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值