python uiautomation watcher_[Python2]介绍关于Uiautomator的watcher使用场景及使用方法

【官方的介绍】:

Watcher

You can register watcher to perform some actions when a selector can not find a match.

如何理解这句话呢,意思就是当你在执行一些操作时,有些选择器未匹配上就会触发这个监视器

举个例子:首次启动安装的第三方app,都会让要同意一些权限(比如电话权限、存储权限、位置权限等),同意之后才可以进行后面正常的操作。那么这个步骤简单划分为三个步骤:

步骤1:启动app

步骤2:进行权限授权

步骤3:使用app功能

watcher:d.watcher('Permission').when(text = 'ALLOW').click(text = 'ALLOW')

在这个过程中,我们可以把步骤2里面权限授权过程全部做成一个watcher

【如何才能使用watcher】

当你的程序跳过了某些步骤而去执行另外的操作,但这个“某些步骤”又在程序正常或者异常情况下确实会发生,那么这个时候就会导致有些 selector 找不到就触发选择器,看看选择器中是否有匹配的,如果有匹配的就会按照watcher中定义的操作进行执行

拿上面例子来说,程序中直接执行步骤1和步骤3,但步骤2又确实是存在,这时就会触发watcher,只有watcher执行了才会去执行步骤3

下面以实例进行讲解:

1 # -*- coding: utf-8 -*-

2 import os3 import sys4 import subprocess5 import time6 from uiautomator import device asd7 #定义一个授权权限的监视器,只要发现弹框中有selector的text=allow的就执行8 d.watcher('Permission').when(text = 'ALLOW').click(text = 'ALLOW')9 #在应用列表中找到radio这个应用10 d(text = "Radio").scroll.to(text = "Radio")11 #启动radio应用12 d(text = "Radio").click()13 #等待2秒后点击开始扫描频道14 time.sleep(2)15 d.click(456,1146)16 i = 0

17 if d(description = "More options").exists:18 print "find more options"

19 d(description = "More options").click()20 else:21 while not d(description = "More options").exists:22 print 'not find more options'

23 time.sleep(1)24 # d.click(456,1146)25 i = i +1

26 print "this is %d time to find the scan button" %i27

28 if d.watcher('Permission').triggered:29 print "watcher is triggered"

30 else:31 print "watcher is not triggered"

输出:

1 watcher is triggered

说明:在上面第12行至15行间,就会触发watcher

watcher的语法介绍:

1 d.watcher('Permission').when(text = 'ALLOW').click(text = 'ALLOW')2 # d.watcher(name) ## creates a newnamed watcher.3 # .when(condition) ## the UiSelector condition of the watcher.4 # .click(target) ## perform click action on the target UiSelector.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值