Python Python3 UI 自动化通过 u2 的 d.watcher () 解决安装 apk 时的权限弹窗 (三)

xiaoxiao · October 23, 2019 · Last by 花开 replied at October 24, 2019 · 523 hits

上篇:https://testerhome.com/topics/19579

uiautomator2官网:https://github.com/openatx/uiautomator2
我们在u2官网可以看到,u2提供了一个d.watcher()监听方法,可以用来解决安卓安装apk的权限弹窗问题,也可以点掉执行case时应用弹出的alert弹窗。下面我们封装一个watcher()方法,监听各种需要点掉的弹窗。

# 监听弹窗
def watcher(self, driver):
try:
driver.watcher("继续安装").when(text="继续安装").click(text="继续安装")
driver.watcher("允许").when(text="允许").click(text="允许")
driver.watcher("始终允许").when(text="始终允许").click(text="始终允许")
driver.watcher("确定").when(text="确定").click(text="确定")
driver.watcher("确认").when(text="确认").click(text="确认")
driver.watchers.watched = True # 设置监听状态
except Exception as e:
print(e)

在执行我们的UI自动化case之前,先执行上面的监听方法,通过上面driver.watchers.watched = True这一行代码设置监听状态,它将会一直监听手机的弹窗,直到手机断开与电脑的连接。
那么实际应用应用中,我们可能需要在执行完case之后,就关闭掉监听,那么可以在执行case结束之后,将driver.watchers.watched设置为False。我们把它封装成一个方法stop_watcher(),在case之后调用即可。

# 停掉监听
def stop_watcher(self, driver):
driver.watchers.watched = False
print('Stop watcher finish.')
共收到 3 条回复 时间 点赞

现在建议使用xpath.when

花开 回复

是更稳定还是效率更高呢?

效率更高吧

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up