appium移动端自动化跑起来比web端selenium慢,还不稳定,受网络、环境、终端设备等各种限制,再所难免,这时候等待就很重要;因为不稳定,经常会出错,同样为了准确定位问题,打好log也尤为重要。
在做selenium web自动化时,我采用selenium的WebDriverEventListener监听器,对事件进行监听,打log、等待element isDisplayed、异常处理等,来避免为了加等待、打log等对selenium提供的每个方法、操作做二次封装;这样做代码相对比较独立,维护起来也很方便,加功能也不用考虑影响(如果你对这种方式还不是很了解,可以百度下,网上有几篇博客写的还是很详细的,这里不做WebDriverEventListener分享),用惯了这种监听器方式做这些处理,那appium能不能采用这种方式呢?
百度一下,各个论坛走一下,结果没搜到相关做法。。。。。有的人可能会想,appium本身跟selenium本是同根生,这种方法也许appium也可以用,我也是这么想的并且亲自试过了,答案是:不行!因为它针对的是webdriver,那appium 自己带不带监听器?
appium api走起,最后在packages io.appium.java_client.events.api.general下发现了appium提供的监听器,最后锁定AppiumWebDriverEventListener监听器