【UI自动化】使用poco框架进行元素唯一定位

news2024/11/16 20:59:57

直接选择:

1.poco(text='买入').click()
2.poco("android.widget.ImageView").click()

相对选择、空间选择:

3.poco(text/name).parent().child()[0].click()

正则表达式:

4.list=poco(textMatches=".*ETF")

今天主要想记录下相对选择是怎么做的。

child():当前节点的子节点
children():当前节点的所有子节点
offspring():当前节点的子孙节点
parent():当前节点的父节点
sibling():当前节点的兄弟节点
child()和children()的使用区别:child()是有参数的,而children不带参数;
child(text=”ETF”)[0],不带参数的情况下,二者使用起来是没有区别的,都可以使用for 循环进行遍历,查找要寻找的元素。

注意:
使用相对选择+空间选择进行唯一定位页面上元素时,有时候会出现下标打印错误,需要【向下寻遍历】和【向上遍历】结合起来使用;并且同一次用位置信息打印时,不要滑动页面,否则打印出来的元素的位置信息会出现变化。

例如:使用相对选择(以“名称”为起点,找到“标普ETF”)找到目标元素的过程;

1.先确定要找的元素的位置; 标普ETF 【0.22,0.470625】
在这里插入图片描述
2.找到目标元素的父节点 【0.22,0.483125】
在这里插入图片描述
3.找到目标节点父节点的父节点 【0.22,0.630625】
在这里插入图片描述
4.可以看到,【相对节点】的【父节点】 和目标节点的【爷爷】节点 同为【兄弟节点】,向上找到爷爷节点就ok了
在这里插入图片描述
5.【相对节点】的【爷爷节点】 的【子孙节点】肯定能找到 我们要找的目标元素。
在这里插入图片描述
6.根据打印出来的下标 child()[3],发现打印出来的位置并不是我们要找的【元素的爷爷节点】的位置 所以3下标不对,一个个遍历,从child()[0]开始,打印到child()[11]的时候找到了。
在这里插入图片描述
7.遍历child()[11]找到【爷爷节点】
在这里插入图片描述
8.最后,一层一层继续向下遍历,直到找到目标元素;

a=poco(text=‘名称’).parent().parent().child()[11].child()[0].child()[0]
a1=poco(text=‘名称’).parent().parent().child()[11].child()[1].child()[0]
print(a,a.get_text(),a.attr(‘pos’))
print(a1,a1.get_text(),a1.attr(‘pos’))

poco(text=‘名称’).parent().parent().child(name=‘android.widget.Image’)[0].click()
poco(text=‘名称’).parent().parent().child(name=‘android.widget.Image’)[1].click()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1462920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

门控时钟基础知识

什么是门控时钟 RTL中的门控时钟 通常情况下,时钟树由大量的缓冲器和反相器组成,时钟信号为设计中翻转率最高的信号,时钟树的功耗可能高达整个设计功耗40%。 加入门控时钟电路后,由于减少了时钟树的翻转,节省了翻转功…

windows下采用 nginx配置websocket支持wss流程

第一步、安装OpenSSL (1)下载OpenSSL软件包 地址:https://slproweb.com/products/Win32OpenSSL.html OpenSSL版本说明: Win64 OpenSSL v1.1.1wLight,安装Win64 OpenSSL v1.1.1w最常用的软件包 Win64 OpenSSL v1.1…

真实的数据如何获取

数据 在信息过载的互联网信息中挖掘有价值的信息是非常难的。 我自己退一步,要想寻求真实的信息也是非常难的。 那么关于个人博客具体浏览量的真实信息到底如何呢? 请看下图: 真相残酷,现实骨感。 核心 如果要抛开自欺欺人&a…

第二证券:5天骤降14!转融券市场再降温

转融券存量在快速下降。 到2月21日,转融券的存量股数为50.36亿股,近5个交易日内下降超20%。券商两融人士向券商我国记者表明,2月6日,证监会表明暂停转融券新增规划,存量逐渐了断,从目前的数据来看&#xf…

[corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape

前言 题目来源:竞赛官网 – 建议这里下载,文件系统/带符号的 vmlinux 给了 参考 [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape Exploiting poll_list Objects In The Linux Kernel – 原作者文章,poll_list 利用方式…

7 数据迁移至达梦数据库

无论使用哪种解决方案很大可能性都需要进行数据迁移,即将旧的非 达梦数据库的数据迁移到达梦数据库。 我们要把 Nacos 的数据或者 SQL 语句迁移到达梦数据库。借助 DM 数据迁移工具 ,完成 Nacos 配置数据表迁移到达梦数据库。

ros自定义action记录

文章目录 自定义action1. 定义action文件2. 修改 package.xml3. 修改 CMakeLists.txt4. 运行 catkin build5. simple_action_server.py6. simple_action_client.py 测试 自定义action ros 版本:kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.t…

【9-1】实验——Neo4j实战操作

目录 一、Neo4j操作——CQL 1、常用CQL命令 2.常用CQL函数 3.图数据的形式 二、实战代码1.create命令 2. MATCH命令 三、使用neo4j工具导入知识图谱 1、工具:neo4j-admin 2、图谱导入: 3、更新图谱: 一、Neo4j操作——CQL 1、常用…

RMAN备份与恢复

文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN(Recovery Manager)是Oracl…

啤酒:精酿啤酒与炸鸡的香脆搭配

炸鸡与啤酒,这对美食界的黄金搭档,早已成为了人们心目中的经典。而当Fendi Club啤酒遇上炸鸡,一场味觉的狂欢就此展开。 Fendi Club啤酒,以其醇厚的口感和淡淡的麦芽香气而著称。这款啤酒在酿造过程中采用了特别的工艺&#xff0c…

Android加载富文本

直接用webview加载: package com.example.testcsdnproject;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.webk…

模型转换案例学习:等效替换不支持算子

文章介绍 Qualcomm Neural Processing SDK (以下简称SNPE)支持Caffe、ONNX、PyTorch和TensorFlow等不同ML框架的算子。对于某些特定的不支持的算子,我们介绍一种算子等效替换的方法来完成模型转换。本案例来源于https://github.com/quic/qidk…

js谐音梗创意小游戏《望子成龙》

🌻 前言 龙年到来,祥瑞满天。愿您如龙般矫健,事业腾飞;如龙鳞闪耀,生活美满。祝您龙年大吉,万事如意! 龙年伊始,我给各位设计了一款原创的小游戏,话不多说,直…

D5020——外围元件少,内含压缩器和扩展器静噪电路,可应用在1.5V立体声耳机上,响应时间可调

D5020是一块增益可调 的压缩、扩展电路。它有两个通道组成,一个通道作扩展用,另一个通道能作压缩或扩展用。电路内部含有小信号全波整流、检测信号的大小,用于调节输入或反馈通道的增益大小。含有温度特性较好的带隙精密基准源,静…

Leetcode 11.盛水最多的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点:二者都是以key-value的键值对方式存储在浏览器端,大小大概在5M。 区别: (1)数据有效期不同:sessionStorage仅在当前浏览器窗口关闭之前有效;localStorag…

C语言第二十八弹---整数在内存中的存储

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1、整数在内存中的存储 2、大小端字节序和字节序 2.1、什么是大小端? 2.2、为什么有大小端? 2.3、练习 2.3.1、练习1 2.3.2、练习2 2.…

安装SSH连接工具

连接Linux 1). 打开finalShell 2). 建立连接 Linux目录结构 在Linux系统中,也是存在目录的概念的,但是Linux的目录结构和Windows的目录结构是存在比较多的差异的 在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目…

使用python构建Android,探索跨平台应用开发Kivy框架

使用python构建Android,探索跨平台应用开发Kivy框架 1. 介绍Kivy框架 Kivy是什么? Kivy是一个开源的Python跨平台应用程序开发框架,旨在帮助开发者快速构建创新的、可扩展的移动应用和多点触控应用。Kivy采用MIT许可证,允许开发…

java数据结构与算法刷题-----LeetCode102. 二叉树的层序遍历

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 1. 法一:广度优先遍历(队列) 解题思路…