51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4860|回复: 2

[原创] 如何判断已有的元素多少 并一一修改

[复制链接]
  • TA的每日心情
    奋斗
    2018-3-8 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2019-4-22 16:24:45 | 显示全部楼层 |阅读模式
    python+uiautomator2
    需求是这么定义的:有5个SOS号码,可以填5个也可以不填。
    测试用例描述:先判断有没有旧的SOS号码,如果有全部删除后,再去添加5个;如果没有直接添加。
    问题:我如何去判定原来的SOS号码有几个,然后做到一一删除。


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

    4. import uiautomator2 as u2
    5. from time import sleep
    6. import random
    7. import time

    8. ip = '192.168.1.104'
    9. package = 'com.njzx.shbsetting'
    10. device = u2.connect(ip)
    11. path = "E:\\pycharm\\run\\UiAutomator2\\F5\\screenpicture\\"
    12. now_time = time.strftime("%Y-%m-%d-%H-%M-%S")

    13. def start_app():    #   启动应用
    14.     device.app_start(package)
    15.     sleep(2)

    16. def addTel_submit():
    17.     device(resourceId="com.njzx.shbsetting:id/layout_sos").click()
    18.     sleep(1)
    19.     #   判断是否存在旧的SOS号码,若存在先删除再添加
    20.     sos_old_tel1 = device(text = "SOS1")
    21.     sos_old_tel2 = device(text="SOS2")
    22.     sos_old_tel3 = device(text="SOS3")
    23.     sos_old_tel4 = device(text="SOS4")
    24.     sos_old_tel5 = device(text="SOS5")
    25.     list_old_tel = [sos_old_tel1,sos_old_tel2,sos_old_tel3,sos_old_tel4,sos_old_tel5]
    26.     if list_old_tel[0].exists:
    27.         for x in range(len(list_old_tel)):
    28.             device(resourceId="zte.shb.sossetting:id/delete").click()
    29.             device(resourceId="zte.shb.sossetting:id/btn_set").click()
    30.         addTel()
    31.         device.press("home")
    32.     else:
    33.         addTel()
    34.         device.press("home")


    35. list_tel = [1774959158, 15152660926, 13222797082, 15365023694, 15951820949, 18551695620,1414141352545, 1344123313231, 124345545566]
    36. def addTel():   #   添加SOS号码
    37.     for i in range(0, 5):
    38.         device(text="输入号码添加").click()
    39.         sleep(1)
    40.         device(resourceId="zte.shb.sossetting:id/et_num").click()
    41.         sos_tel = random.choice(list_tel)
    42.         list_tel.remove(sos_tel)
    43.         print(list_tel)
    44.         device(resourceId="zte.shb.sossetting:id/et_num").send_keys(sos_tel)
    45.         device(resourceId="zte.shb.sossetting:id/btn_add").click()
    46.         sleep(2)
    47.         image = device.screenshot()
    48.         image.save(path + now_time + '.jpg')
    49.         sleep(1)


    50. if __name__ == '__main__':
    51.     start_app()
    52.     addTel_submit()
    复制代码



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-3-8 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-4-22 16:26:38 | 显示全部楼层
    报错信:”   
    raise UiObjectNotFoundError({'code': -32002, 'method': 'wait'})
    uiautomator2.UiObjectNotFoundError: -32002 Client error: <> data: , method: None
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-3-8 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-4-24 14:31:41 | 显示全部楼层
    已经解决,只要统计出旧的SOS号码所代表的唯一控件,有多少个,以此为循环次数进行删除操作。
    1.     count_elments = device(resourceId = "zte.shb.sossetting:id/number").count
    2.     print(count_elments)
    3.     if count_elments != 0:
    4.         for i in range(0,count_elments):
    5.             device(resourceId="zte.shb.sossetting:id/delete").click()
    6.             device(resourceId="zte.shb.sossetting:id/btn_set").click()
    7.         addTel()
    8.         device.press("home")
    9.     else:
    10.         addTel()
    11.         device.press("home")
    复制代码

    原来的思路是:我统计出所有全部旧的SOS号码的控件,做成一个列表,然后判断,如果某个SOS号码不存在那么久remove掉。
    这种方法不可行,因为它默认存在,并占用了内存。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-18 09:55 , Processed in 0.069199 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表