一、环境检查与参数获取
1.通过adb命令获取,获取参数信息
参数信息:
{
"appium:deviceName": "emulator-5554",
"appium:platformVersion": "5.1.1",
"platformName": "Android",
"appium:appPackage": "com.android.launcher3",
"appium:appActivity": "com.android.launcher3.Launcher"
}
连接成功,证明appium环境不存在问题
2.真机环境检查
adb获取参数信息:
二、日志的问题逐项尝试解决办法
1.The 'automationName' capability was not provided in the desired
capabilities for this Android session.automationName:制定自动化引擎,
默认是Appium(Android下是uiautomator2,ios下是uiautomation)
安卓下还可以指定uiautomator1,ios下还可以指定为XCUITest(只能是这个)
automationName没有提供安卓会话,这个问题可以先搁置。默认是Appium(Android下是uiautomator2,这条日志是可以忽略。
2.Setting 'automationName=UiAutomator2' by default and using the UiAutomator2 Driver 与日志In previous versions (Appium <= 1.13.x), the default was 'automationName=UiAutomator1'
从日志中发现:[UiAutomator2]检测过程异常终止。重新启动UiAutomator2(1中的1),
也就是说,将automationName:UiAutomator1,启动连接,结果也是相同的错误,故这一条日志,忽略
3.The next major version of Appium (2.x) will **require** the , 'automationName' capability to be set for all sessions on all platforms,Appium的下一个主要版本(2.x)将要求为所有平台上的所有会话设置'automationName'功能,这里可以看一下appium的版本,这一条日期,可以忽略
4.Appium v1.22.3 creating new AndroidUiautomator2Driver (v1.70.1) session,Applying relaxed security to 'AndroidUiautomator2Driver' as per server command line argument. All insecure features will be enabled unless explicitly disabled by --deny-insecure
译文:创建新的AndroidUiautomator2Driver (v1.70.1)会话,根据服务器命令行参数对'AndroidUiautomator2Driver'应用宽松的安全性。所有不安全特性都将被启用,除非通过——deny-insecure显式禁用,可以参照官网文档,了解一下,忽略的内容
5.io.appium.uiautomator2.server与io.appium.uiautomator2.server.test未安装的问题,一般在appium安装位置:C:\Program Files\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks目录下,单独将这两个文件复制到桌面,重新安装
从日志中发现,这里他们已经被安装了。
再次连接报错,成功这说明问题已解决。个人手机出现的问题:
[UiAutomator2] The instrumentation process cannot be initialized. Make sure the application under test does not crash and investigate the logcat output.
与之前的日志对比:[[W3C]]Encountered internal error running command: Error: The instrumentation process cannot be initialized.
Make sure the application under test does not crash and investigate the logcat output.
首先,io.appium.uiautomator2.server与io.appium.uiautomator2.server.test,在模拟器上运行正常,则说明,这两个app不存在问题,
其次:观测手机屏幕变化,打开了appium setings连续闪了2次,结合POST /wd/hub/session 500 16200 ms - 861,总结为:手机作为服务器,返回500,证明手机端服务出现了问题,导致uiautomator2无法初始化检测进程,应用程序不会崩溃,需要去看手机运行日志。
通过一个快速的办法,区分是手机的问题还是io.appium.uiautomator2.server的问题,
在手机应用中,找到io.appium.uiautomator2.server的app,查看存储和缓存
软件只要被打开过,总会产生用户数据和缓存,记录使用信息,这里查看
用户数据和缓存都是没有,对比模拟器:
手机没有任何 io.appium.uiautomator2.server的使用记录。在手机路径浏览,这两个目录下,找日志,关于手机错误的问题,也是及时反馈的手机售后服务
这条错误日志,并不是我在使用appium。