移动端App自动化踩坑记录

胸怀万里世界, 放眼无限未来。这篇文章主要讲述移动端App自动化踩坑记录相关的知识,希望能为你提供帮助。
1.daemon not running; starting now at tcp:5037
环境:macos系统
问题:打开网易MUMU模拟器,终端输入adb devices,提示如下
ZBMAC-C02N43Mfc:~ zhaitiantian$ adb devices
daemon not running; starting now at tcp:5037
Terminated: 15
使用adb kill-server、adb start-server、adb devices,模拟器连接状态还是offline
问题原因:公司安全部门 有程序监控开启adb的端口
解决方案:1).关闭wifi,关闭所有应用,重启电脑,打开电脑后,不要打开WIFI,此时打开模拟器,使用adb命令连接,就可以连接成功啦,此时再打开WIFI,但是这种情况下,就是每次重启电脑就会有这种问题
2).方案2是下载cleanMyMac插件,将自启动的程序 都关掉,这个我还没有试,有类似问题的同学可以试一下
2.雪球app “ com.xueqiu.android.view.WelcomeActivityAlias” (欢迎页类名),  #com.xueqiu.android.common.MainActivity(主页类名) 使用主页类名失败的问题
首先:应用启动的时候都有两个activity,一个是欢迎页,或者叫启动页的activity ,一个是主页的
其次:有的应用直接启动主页也能进到主页面, 有的应用就加了限制 , 不允许 这么操作, 因为不符合用户需求 , 用户正常的使用场景是启动应用的时候 加载完启动页,才能进主页 
然后:雪球就是这个限制了的app,如果你不从启动页进, 直接进首页, 就会丢失数据
3.desired_caps[“ skipDeviceInitialization” ] = ‘true’ 参数的作用
当我们使用appium运行测试用例的时候,会在我们手机中安装一个appium setting的apk,每次安装这个应用都会消耗一定的时候。skipDeviceInitialization参数就是在我们运行的时候去检查手机是否安装了此应用,当安装完以后则会跳过这个步骤。起到一个提高效率,节省时间的作用
4.配置capability相关之输入中文参数,第一组运行不行,使用第二组,同理,第二组不行使用第一组,可以稍微转换下思路
desired_caps["unicodeKeyBoard"] = ‘true‘
desired_caps["resetKeyBoard"] = ‘true‘
desired_caps["unicodeKeyboard"] = True
desired_caps["resetKeyboard"] = True
5.noRest设置,并不是复用原页面
noreset并不是复用原页面,而是比如启动页面的时候有弹窗,关闭弹窗,可以使用该设置,重新启动的时候就不会弹出弹窗了,一定要注意??

appium启动app时会自动清除app里面的数据,假如我事先在app保留了一些数据,比如我在联系人app已经添加了一些联系人,在做appium自动化时这些数据我不想被清除掉,怎么办呢? 此时我们需要添加 ‘ noReset’ : “ True” 属性和属性值来解决这个问题   【移动端App自动化踩坑记录】 

    推荐阅读