1、安卓设备连接失败

通过adb devices命令 查看安卓设备的连接情况,如图,未成功连接

解决方法:

(1)关闭360安全卫士和360手机助手
(2)查看5037端口是否被占用

netstat -ano|findstr 5037(windows)

netstat -lnt | grep 5037(linux)

 

连接成功:

 

 设备连接成功后,CMD命令行运行 appium -a 127.0.0.1 -p 4723 –U 6207febc --no-reset   ,看appium服务器能否运行成功(运行成功后,如果想启动appium图形界面,记得关闭命令行,否则会提示端口冲突)

 

 

2、

(1)解决每次运行脚本都安装setting和unlock的问题:

 Appium\node_modules\appium\lib\devices\android 路径下打开
android.js文件,注释掉这两行

 

(2)解决每次运行脚本都会重新安装app的问题

Appium老版本的“设置”里有no reset选项,新版本没有,解决方法:

1>命令行运行appium,带上--noreset

appium -a 127.0.0.1 -p 4723 –U 6207febc --no-reset

2>在脚本里加上no reset设置

 self.desired_cups['noReset'] = 'True'

 

 

3、获取app的包名和当前活动名:

adb shell

dumpsys activity | grep mFocusedActivity

 

注:有时候调用app的Activity无效,需要获取到初始Activity,查看方法如下

进入aapt路径下:D:\android-sdk_r24.4.1-windows\android-sdk-windows\build-tools\28.0.3

输入命令: aapt dump badging C:\apk\kaoyanbang.apk | find "launchable-activity"

launchable-activity::com.xxx.xxx.xxx.xxx

 

4、允许第三方应用启动app的activity:

android-sdk-windows\tools\apps\SdkController 路径下打开

AndroidManifest.xml文件,添加一行:android:exported = "true"

 

 

5、运行自动化脚本,appium报错

报错1:selenium.common.exceptions.SessionNotCreatedException: Message: A new session could not be created. (Original error: Requested a new session but one was in progress)

(1)打开appium里面的override exsiting session功能

(2)杀掉app重新启动

 

报错2:报错 webdriver

app卸载重装后,需要重启appium服务器,否则此时运行脚本,会报错

 

重启appium和pycharm解决了我百分之八十的报错情况,后来我安装了一个Appium-Desktop的新版,没有再出现过频繁报错的问题,还是升级大法好。

每个错误的解释和原因非常多,具体还是要看appium的日志详情,再来具体分析。

 

6、Appium方法构造:

appium的 clear() 方法在安卓上不太好用,速度慢且光标跳转容易异常,是个已知bug,建议写一个删除方法,封装一下
1.获取文本长度
2.跳到文本最后
3.删除(全选后删除或者一个个字符删除)