元素定位老是失效?来试试XPath定位

前言

hi,大家好,我是阿陆。最近不是在研究RPA机器人统计群聊用户进群方式嘛。(具体可以查看这篇文章)。在做项目的时候就发现有很多的问题,本篇详解"元素捕获之后,在其他手机或者重新运行就失效的问题"。那现在你准备好了吗?准备好咱就发车!

元素失效根本原因

  1. 我们第一次捕获 群聊中用户的进群方式 这个元素,他的整体元素结构是这样的。
  1. 在进一步的测试过程中,我注意到,如果换一个人,再次捕获,则该元素失效
  1. 最简单的解决方案 为了应对元素ID的变化,我们可以采取一种策略:将所有的ID取消选择。这样一来,即使元素的ID发生了改变,我们仍然能够成功选取到该元素。然而,需要注意的是,在特定情况下,如果取消选择ID导致与目标元素类似的其他元素也被选中,那么这种方法就不适用了。

    面对这种经常出现变动的元素,一个更加可靠和精确的定位方法是使用XPath。通过XPath,我们可以根据文档的结构来精确地定位到我们想要选择的元素,从而避免因元素ID变化而导致选取失败的问题。

什么是XPath

XPath,全称XML Path Language,是一种在XML文档中查找信息的语言,它也适用于HTML文档的搜索。

XPath最初是为了搜寻XML文档而设计的,但它同样适用于HTML文档。它提供了一种简洁明了的路径选择表达式,使得定位文档中的特定元素变得非常方便。XPath还包含了大量的内建函数,这些函数可以用于处理字符串、数值、时间以及节点和序列等。

XPath于1999年11月16日成为W3C标准,被设计为供XSLT、XPointer以及其他XML解析软件使用。学习XPath时,可以通过阅读官方文档、教程或者使用浏览器中的开发者工具来实践和验证XPath表达式。

总的来说,XPath是一个非常强大的工具,对于需要处理和提取XML或HTML文档中信息的任务来说,它是一个不可或缺的技能。

如果你还不了解XPath的语法,可以移步教程 https://www.runoob.com/xpath/xpath-tutorial.html

XPath在该程序中的应用

  1. 首先我们需要知道该页面的xml代码。所以我们需要这么操作。
  1. 运行上述代码,则可以在控制台中获取该页面的完整xml。将获取到的xml复制到vscode中
  1. 寻找邀请进群的代码,即下图。
  1. 一眼可以看到resource-id是标志唯一的,那么我们全局搜一下是不是全局唯一确定下。糟糕,不好,搜出来了两个。
  1. 不用担心,让我们根据当前的情况来进行专门的分析。如果我们注意到 "邀请进群" 的选项总是位于最末尾,那么我们可以先依据resource-id来识别出两个相关的元素,接着从中选出最后一个即可解决问题。

  2. 写表达式(重要)

这个表达式的逻辑可以被描述为:在文档中搜索具有resource-id等于'android:id/summary'的元素,并从搜寻到的结果集中选取最后一个元素。

perl 复制代码
(//*[@resource-id="android:id/summary"])[last()]

最后

有写错的,或者有什么问题,欢迎大家评论

作者:搬砖的阿陆 交流+v: alu666128 备注:RPA,我拉你进入学习交流群

相关推荐
蚂小蚁5 小时前
AI+云编程搞定Web3游戏开发:下一代游戏的新基建
web3·aigc·ai编程
DisonTangor6 小时前
月之暗面开源 Kimi-Audio-7B-Instruct,同时支持语音识别和语音生成
人工智能·开源·aigc·语音识别
一只韩非子7 小时前
什么是MCP?为什么引入MCP?(通俗易懂版)
人工智能·aigc·mcp
Brady9518 小时前
爆火的Agent智能体到底是什么?为何被称作ChatGPT的'终极进化版'?
aigc
BWrong9 小时前
MCP(Model Context Protocol)入门与实践
aigc·ai编程
win4r9 小时前
🚀AutoGen重大更新!新增McpWorkbench完美支持MCP Server!支持将Agent和Team封装为工具!开启模块化智能体编程!实战教程:从零
aigc·openai·ai编程
墨风如雪10 小时前
成本狂降80%!文心4.5/X1 Turbo重塑AI格局:百度这场发布会太燃了!
aigc
Mu先生Ai世界10 小时前
主流 AI 生成 3D 技术流派辨析:Text-to-3D, Image-to-3D 与 NeRF 应用概览 (AI+3D 产品经理笔记 S2E02)
aigc·产品经理
阿乐去买菜10 小时前
很喜欢Vue,但还是选择了React: AI时代的新考量
前端·aigc
FrontBurgess11 小时前
Chrome扩展开发实战:打造你的GPT助手(仿豆包、sider谷歌插件)
前端·github·aigc