【转】app自动化问题点整理

app自动化问题点整理

 

1、配置SDK环境发现adb无法生效:

解决方案:

  这个问题一般就是你的环境变量没有配置好,很多同学比较容易出现的点就是win10系统的环境变量配置:

一定要注意打开path添加:%ANDROID_HOME% ools;%ANDROID_HOME%platform-tools;这个配置的时候一定要先点击新建再分别在两行创建(win7系统是直接粘贴到path变量值后面即可),并且分号不需要!!!

 

2、通过adb命令获取前台包名和类名出现下面错误:

解决方案:

  在windows环境变量中检查path中是否有%SystemRoot%system32;%SystemRoot%这个配置,如不存在,添加进行保存即可。

注意:在android 7.0以下可以用此命令进行查询,但是在android 8.0上dumpsys activity的信息已经有变化,不能使用mFocusedActivity

需要使用:

  adb shell dumpsys activity | find "mResumedActivity"

 

3、appium inspector工具开启session出来下面提示:

Error: Activity used to start app doesn't exist or cannot be launched! Make usre it exists and is launchable activity

解决方案:

  这种问题一般就是你的appActivity写错,需要确认你对应测试入口Activity是否正确:通过aapt dump badging apk路径得到lunchable-activity对应的类名

 

4、androidDriver.startActivity方法不存在

解决方案:

  将Java Compiler改成1.8,因为startActivity方法在接口中定义成default,这是JDK1.8+的新特性。

 

5、Hybrid混合应用切换appium中提示:

[MJSONWP] Encountered internal error running command: Error: Could not find package com.android.chrome on the device

解决方案:

  Could not find package com.android.chrome on the device测试手机/模拟器中没有安装chrome浏览器,去应用市场下载安装一个即可。

 

6、微信小程序自动化appium提示:

Error: Failed to start Chromedriver session: 
An unknown server-side error occurred while processing the command. 
(Original error: unknown error: known package com.android.chrome does not accept activity/process

解决方案:

  java-client的版本切换到5.0.3,自测java-client 5.0.4及以上的版本会报此错误信息,Appium官方确认是selenium的BUG,所以小伙伴们测试微信小程序的时候最好使用5.0.3或者以下的版本。

 

7、Hybrid混合应用自动化脚本运行出来下面提示:

[Chromedriver] error: No Chromedriver found that can automate Chrome '39.0.0'

解决方案:

  1、确定在手机端有安装chrome浏览器

  2、chromedriver的版本和webview版本需要对应上

参考链接:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md

8、DesiredCapability属性deviceName无效问题:

  在代码中通过deviceName指定运行的设备会发现无效,Appium有做了说明

deviceName属性在代码中配置了是无效的,但是Appium初始化的时候必须要有,否则会报错,很坑有木有。

9、指定automationName为UIAutomator2,如果有涉及到多设备并发执行,那么每个AppiumServer中UIAutomator2对应的端口都需要配置:

默认UIAutomator2端口为8200,可以自己在代码中指定

desiredCapabilities.setCapability("systemPort", 8202);

 
 
原文地址:https://www.cnblogs.com/momoon/p/12205778.html