2023年8月3日发(作者:)
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: -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 onyour device.⼿机系统低于4.2,appium不⽀持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! Makeusre 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: -s 8806a0b0 shell “echo ‘ready‘“error: unknown host service链接⼿机失败,重新链接⼿机即可,我就是重新拔插了⼀下usbError: Command failed: C: /s /c “D: -s 8806a0b0shell “echo ‘ping'”“error: unknown host serviceadb被突然占⽤导致,例如你在运⾏⽤例的时候运⾏了模拟器。8、error: Failed to start an Appium session, err was: Error: /.LuncherActivity never started. Current:/.NavigateActivity次种情况常发⽣在app有引导页时解决⽅案:android初始化参数⾥添加 desired_caps['waitappActivity'] = 'rActivity'ps:跟机⼦模拟器或机型有⼀定关系,⽬前没有100%解决技巧 1. 每次测试都重新安装app为capabilities⾊设置noReset为true
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 -_mi/././.UnicodeIMEC:UsersLITP>执⾏adb命令先写好⼀个执⾏cmd的⽅法/** * 执⾏adb命令 * @param s 要执⾏的命令 */ private void excuteAdbShell(String s) { Runtime runtime=time(); try{ (s); }catch(Exception e){ print("执⾏命令:"+s+"出错"); } }在需要搜索的时候执⾏下⾯的代码,切换的输⼊法⽤⾃⼰查看列表的输⼊法内容,我这⾥是搜狗输⼊法//使⽤adb shell 切换输⼊法-更改为搜狗拼⾳,这个看你本来⽤的什么输⼊法 excuteAdbShell("adb shell ime set /.SogouIME"); //再次点击输⼊框,调取键盘,软键盘被成功调出 clickView(rch()); //点击右下⾓的搜索,即ENTER键 pressKeyCode(); //再次切回 输⼊法键盘为Appium unicodeKeyboard excuteAdbShell("adb shell ime set /.UnicodeIME");
2023年8月3日发(作者:)
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: -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 onyour device.⼿机系统低于4.2,appium不⽀持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! Makeusre 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: -s 8806a0b0 shell “echo ‘ready‘“error: unknown host service链接⼿机失败,重新链接⼿机即可,我就是重新拔插了⼀下usbError: Command failed: C: /s /c “D: -s 8806a0b0shell “echo ‘ping'”“error: unknown host serviceadb被突然占⽤导致,例如你在运⾏⽤例的时候运⾏了模拟器。8、error: Failed to start an Appium session, err was: Error: /.LuncherActivity never started. Current:/.NavigateActivity次种情况常发⽣在app有引导页时解决⽅案:android初始化参数⾥添加 desired_caps['waitappActivity'] = 'rActivity'ps:跟机⼦模拟器或机型有⼀定关系,⽬前没有100%解决技巧 1. 每次测试都重新安装app为capabilities⾊设置noReset为true
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 -_mi/././.UnicodeIMEC:UsersLITP>执⾏adb命令先写好⼀个执⾏cmd的⽅法/** * 执⾏adb命令 * @param s 要执⾏的命令 */ private void excuteAdbShell(String s) { Runtime runtime=time(); try{ (s); }catch(Exception e){ print("执⾏命令:"+s+"出错"); } }在需要搜索的时候执⾏下⾯的代码,切换的输⼊法⽤⾃⼰查看列表的输⼊法内容,我这⾥是搜狗输⼊法//使⽤adb shell 切换输⼊法-更改为搜狗拼⾳,这个看你本来⽤的什么输⼊法 excuteAdbShell("adb shell ime set /.SogouIME"); //再次点击输⼊框,调取键盘,软键盘被成功调出 clickView(rch()); //点击右下⾓的搜索,即ENTER键 pressKeyCode(); //再次切回 输⼊法键盘为Appium unicodeKeyboard excuteAdbShell("adb shell ime set /.UnicodeIME");
发布评论