给定脚本中是否有 time.sleep() 的替代品?

Is there a replacement for time.sleep() in the given script?

以下脚本将 android 设备连接到 Wi-Fi 并使用现有帐户注册。

import re
import sys
import time
import os

from PIL import Image

from com.dtmilano.android.viewclient import ViewClient
device, serialno = ViewClient.connectToDeviceOrExit()
vc = ViewClient(device=device, serialno=serialno)

vc.dump()
vc.findViewWithTextOrRaise(u'Continue').touch()##this line will click on Continue button.
print 'Continue button found and clicked'
vc.dump()
vc.findViewWithTextOrRaise(u'ABCCC').touch()##this line will click WiFi ABCCC SSID.
print 'SSID found and clicked'
vc.dump()
device.shell('input text *********')
vc.dump()
vc.findViewWithTextOrRaise(u'Connect').touch()##connect to wifi
time.sleep(20) <<<<< This line here
vc.dump()
device.shell('input text *********')##enter username
device.shell('input keyevent 61')
device.shell('input text *****')##enter password

此处休眠时间为20秒,是因为连接Wi-Fi后提示下一页(注册页)需要10-20秒的缓冲时间。例如,在某些情况下,如果这只需要 10 秒,那么剩余的 10 秒就会被浪费,脚本只会在该时间之后恢复。那么有什么方法可以识别“好的注册页面提示,是时候执行下一行代码了,不会浪费任何时间”。

假设有一个视图,大概是一个 EditText,您在其中输入 用户名 并且还假设在您按下 Connect[=16= 后出现这样的视图] 按钮,你可以这样做(你应该找到并使用你的案例的特定 ID

vc.findViewWithTextOrRaise(u'Connect').touch()##connect to wifi
u = None
while u is None:
    vc.dump()
    u = vc.findViewById('id/no_id/n')
#device.shell('input text *********')##enter username
u.type('**********')