等待加载出来,或者获取当前 android 上活跃的 activty 是哪个?
新版本增加了 app-wait-activity 这个选项, 你可以试试. 我还没来得及试验.
我感觉真实应用场景中不是等待一个 Activity 出现,而是等待 Activity 上的某一个元素出现,比如登陆完成后是否能够正确显示我要的用户名,为何不试试 selenium 自己的 WebDriverWait,他在 support.ui 下,support 下还提供了一个 expected_conditions,里面实现了很多实用的可调用类
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
........
........
........
def XXX(self)
#WebDriverWait构造方法传入两个参数,一个是当前实例的driver
#另外一个是超时时间,当然了,当WebDriverWait在当前Activity中找到你要定位的那个元素 时,他是不会去管这个超时时间的,马上就会CallBack
WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.NAME,"登 录")))
textfields=self.driver.find_elements_by_tag_name("textfield")
上面的例子是我自己测试过的,可以满足这个需求。
#4 楼 @seveniruby sleep,wait "死等"神马的会不会有点被动的说~而且,假如我这个脚本的作用本身就是为了自动化验证一个业务的处理时间,中间如果出现"死等"的情况,测试结果的误差就太不可控了,实际上我们需要的是一个比较理想的处理方式:在一个可用的方法中可以设置一个超时时间,但是在不超时的情况下只要找到我要的元素或者 Activity 就应该立刻进行下面的活动,我上手 Appium 时间不长,但是我尝试使用 Selenium 的 WebDriverWait 是可以做到以上需求的,app-wait-activity 什么时候试验一把。
#6 楼 @seveniruby 额,OK,酱紫啊,误会意思啦......
问题解决了没, 我看了 app-wait-activity 貌似是为了跳过一开始的启动界面.