如何判断已有的元素有多少 ,并一一进行修改

2024-01-28 05:20

本文主要是介绍如何判断已有的元素有多少 ,并一一进行修改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python+uiautomator2
需求是这么定义的:有5个SOS号码,可以填5个也可以不填。
测试用例描述:先判断有没有旧的SOS号码,如果有全部删除后,再去添加5个;如果没有直接添加。
问题:我如何去判定原来的SOS号码有几个,然后做到一一删除。

#   针对于上一个脚本AddSOSAndScreen.py,有这么两处不足
#   1、如果我存在的旧的SOS号码没有5个,即存在1个--4个,执行就会报错
#    raise UiObjectNotFoundError({'code': -32002, 'method': 'wait'})  uiautomator2.UiObjectNotFoundError: -32002 Client error: <> data: , method: None
#   2、每次录入新的SOS号码,因为是随机,但是有可能随机匹配相同的号码,如何随机录入不同的SOS号码............解决方式:将list_tel定义为全局变量import uiautomator2 as u2
from time import sleep
import random
import timeip = '192.168.1.104'
package = 'com.njzx.shbsetting'
device = u2.connect(ip)
path = "E:\\pycharm\\run\\UiAutomator2\\F5\\screenpicture\\"
now_time = time.strftime("%Y-%m-%d-%H-%M-%S")def start_app():    #   启动应用device.app_start(package)sleep(2)def addTel_submit():device(resourceId="com.njzx.shbsetting:id/layout_sos").click()sleep(1)#   判断是否存在旧的SOS号码,若存在先删除再添加sos_old_tel1 = device(text = "SOS1")sos_old_tel2 = device(text="SOS2")sos_old_tel3 = device(text="SOS3")sos_old_tel4 = device(text="SOS4")sos_old_tel5 = device(text="SOS5")list_old_tel = [sos_old_tel1,sos_old_tel2,sos_old_tel3,sos_old_tel4,sos_old_tel5]if list_old_tel[0].exists:for x in range(len(list_old_tel)):device(resourceId="zte.shb.sossetting:id/delete").click()device(resourceId="zte.shb.sossetting:id/btn_set").click()addTel()device.press("home")else:addTel()device.press("home")list_tel = [1774959158, 15152660926, 13222797082, 15365023694, 15951820949, 18551695620,1414141352545, 1344123313231, 124345545566]
def addTel():   #   添加SOS号码for i in range(0, 5):device(text="输入号码添加").click()sleep(1)device(resourceId="zte.shb.sossetting:id/et_num").click()sos_tel = random.choice(list_tel)list_tel.remove(sos_tel)print(list_tel)device(resourceId="zte.shb.sossetting:id/et_num").send_keys(sos_tel)device(resourceId="zte.shb.sossetting:id/btn_add").click()sleep(2)image = device.screenshot()image.save(path + now_time + '.jpg')sleep(1)if __name__ == '__main__':start_app()addTel_submit()

 

这篇关于如何判断已有的元素有多少 ,并一一进行修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

MySQL进行分片合并的实现步骤

《MySQL进行分片合并的实现步骤》分片合并是指在分布式数据库系统中,将不同分片上的查询结果进行整合,以获得完整的查询结果,下面就来具体介绍一下,感兴趣的可以了解一下... 目录环境准备项目依赖数据源配置分片上下文分片查询和合并代码实现1. 查询单条记录2. 跨分片查询和合并测试结论分片合并(Shardin

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件