混合应用的开发:测试案例是《果时汇.apk》,首先,如果做appium测试,必须具备一定的app开发了解,比如什么是混合开发,什么是纯h5开发,什么是纯原生的。将apk安装到手机。
首先是一个连接的问题:

执行一段时间后设备adb服务中断,多次拔插数据线才能再连上,换了多个appium版本都有同样的问题:
* daemon not running. starting it now on port 5037 *adb E 43518 809114 usb_osx.cpp:322] Could not open interface: e00002c5adb E 43518 809114 usb_osx.cpp:284] Could not find device interface* daemon started successfully *error: no devices/emulators found


这时候我们重启一下电脑,手机(当然一次连接上,很长时间就不需要重启了),然后找个软件,比如手机管家之类的,扫一下驱动,把手机驱动一加载就可以连接上了。mac电脑上比较好用的就是锤子的HandShaker。

 mac平台上的uiautomatorviewer可以一如既往的对混合应用,h5应用进行定位,并且操作,跟原生的定位操作没什么区别,而且不需要切入切出之类的操作。

windows上就会有很多坑了,首先是我们在网址栏输入http://inspect 会出现手机型号,如果没有出现,扫一下手机驱动有没有装上,或者开发者模式,usb调试有没有打开。

appium+python自动化测试(4)

然后打开我们的app,会出现如下界面:

appium+python自动化测试(4)


如果没有像预期一样出现果时汇,这里我们需要翻墙,因为第一次需要翻墙加载一下缓存,可以找个蓝灯之类的翻墙软件装上,找个网速好的地方,一下就加载出来了。

然后就是对页面进行操作了,我们点击inspect,会出现如下页面:

appium+python自动化测试(4)

然后我们通过右边代码页面的左上角的小尖头去定位元素,如果没有小箭头,出现的是搜索按钮,可能是浏览器版本的原因,或者手机的原因,如果浏览器的原因,点击搜索按钮跟小箭头的功能没差别,但是如果是手机的原因,可以使用别人的手机试试。


然后是获取元素操作了,因为我们整个页面都是h5的,所以第一步就是要切入到webview:
有的时候,我们切入webview会出现如下错误:

selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: We already have a chromedriver instance running

原因就是我们当前手机运行了多个webview的app,比如淘宝(我就比较爱打开,原因我就不说了。。。),微信,这时候,我们可以关闭后台所有的app,只留下需要测试的app即可。

然后我们在进行获取宽高以及滑动的时候可能会报如下错误:


selenium.common.exceptions.WebDriverException: Message: Method has not yet been implemented

原因就是获取宽高跟滑动的swip方法都是原生页面的方法,这时候我们需要切换回来,当然不止这两种操作,还会有很多其他的操作,我们不能在h5页面操作,只有原生页面支持,这时候我们就要切回NATIVE_APP,然后进行操作即可。然后要点击元素了,我们需要再次切换到webview,可能有的人会觉得切来切去的比较烦而且觉得乱,所以我们只需要记住哪些方法只可以在nativeapp上执行,哪些需要在webvioew点击,我们到时候进行相应的切换即可,还是那句话,我们一定要清楚自己想要做的事情,要实现的功能,就不会把代码写乱。








相关文章: