(已解决) 如何判断已有的元素多少 ,并做到一一修改

上一篇 / 下一篇  2019-04-22 16:17:15 / 个人分类:python

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



#针对于上一个脚本AddSOSAndScreen.py,有这么两处不足
#1、如果我存在的旧的SOS号码没有5个,即存在1--4个,执行就会报错
#raiseUiObjectNotFoundError({'code':-32002,'method':'wait'})uiautomator2.UiObjectNotFoundError:-32002Clienterror:<>data:,method:None
#2、每次录入新的SOS号码,因为是随机,但是有可能随机匹配相同的号码,如何随机录入不同的SOS号码............解决方式:将list_tel定义为全局变量

importuiautomator2asu2
fromtimeimportsleep
importrandom
importtime

ip='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")

defstart_app():#启动应用
device.app_start(package)
sleep(2)

defaddTel_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]
iflist_old_tel[0].exists:
forxinrange(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]
defaddTel():#添加SOS号码
foriinrange(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()

TAG:

bling123的个人空间 引用 删除 bling123   /   2019-04-24 14:25:31
已经解决,只要统计出旧的SOS号码所代表的唯一控件,有多少个,以此为循环次数进行删除操作。

count_elments = device(resourceId = "zte.shb.sossetting:id/number").count
if count_elments != 0:
    for i in range(0,count_elments):
        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")
 

评分:0

我来说两句

Open Toolbar