2023年11月29日发(作者:)

appium运⾏各种坑爹报错问题及解决⽅法【推荐】

1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress

之前的会话没有关闭,然后你⼜运⾏了测试实例,也没有设置覆盖.

解决:

1. 重新停⽌appium服务,开启Appium服务

2. Genarel Setting那⾥设置覆盖Session,重启Appium

测试结束在AfterClass()

2. error: Failed to start an Appium session, err was: Error: Command failed: C: /s /c “D:android-

-s adb server version (32) doesn't match this client (36); killing…

wait-for-device”

error: could not install smartsocket listener: cannot bind to 127.0.0.1:5037:

没有链接上⼿机或者模拟器,请确认已经连接成功,重新链接

3. error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on

your device.

⼿机系统低于4.2appium不⽀持4.2.2以下的系统,请换⼀个⼿机或者模拟器来测试。

4. Error: Permission to start activity denied.

**activity在清单⽂件⾥⾯没添加Android:exported=”true”的话,你不能直接打开对应的activity,需要从启动页activity打开。

exported属性就是设置是否允许activity被其它程序调⽤**

5. error: Failed to start an Appium session, err was: Error: Activity used to start app doesn't exist or cannot ve launched! Make

usre it exists and is launchable activity

要打开的activity不存在,activity路径错误,改为完整正确的activity路径

6. error: Failed to start an Appium session, err was: Error: ‘java - version' failed. Error: Command failed:

C: /s /c “java -version”

Java版本错误,请安装最新的版本。

7.> info: [debug] Error: Command failed: C: /s /c “D:android-sdk-windowsplatform-

链接⼿机失败,重新链接⼿机即可,我就是重新拔插了⼀下usb

Error: Command failed: C: /s /c “D: -s 8806a0b0

shell “echo ‘ping'”“

error: unknown host service

adb被突然占⽤导致,例如你在运⾏⽤例的时候运⾏了模拟器。

8error: Failed to start an Appium session, err was: Error: /.LuncherActivity never started. Current:

次种情况常发⽣在app有引导页时

解决⽅案:android初始化参数⾥添加 desired_caps['waitappActivity'] = 'rActivity'

ps:跟机⼦模拟器或机型有⼀定关系,⽬前没有100%解决

技巧 1. 每次测试都重新安装app

capabilities⾊设置noResettrue

ability(“noReset”, true);

2. 中⽂乱码

编码问题,Android Studio修改⽂件编码的⽅法,最底部的UTf-8,点击选GBK就可以了,reload⽂件。(ps: 先把⽂件内容全选

复制⼀下再转换编码,再粘贴,不然⽂件内容就变乱码了)

3. 清除编辑框EditText内容

/**

* 逐字删除编辑框中的⽂字

* @param element ⽂本框架控件

*/

public void clearText(AndroidElement element){

String className = ss().getSimpleName();

if (("EditText")){

String text = t();

//跳到最后

eyCode(KEYCODE_MOVE_END);

for (int i = 0; i < (); i ++){

//循环后退删除

eyCode(BACKSPACE);

}

}else {

print("不是⽂本输⼊框架,⽆法删除⽂字");

}

}

4. 点击输⼊法键盘的搜索⽅法1: 切换输⼊法

利⽤adb命令先切换为⾃⼰的输⼊法,按了搜索再切换为appium的输⼊法

查看当前⼿机的输⼊法

cmd执⾏下⾯的的代码

adb shell ime list -s

可以看到类似下⾯的结果,

:UsersLITP>adb shell ime list -s

_mi/.ImeService

/.SogouIME

/.UnicodeIME

C:UsersLITP>

执⾏adb命令

先写好⼀个执⾏cmd的⽅法

/**

* 执⾏adb命令

* @param s 要执⾏的命令

*/