appium運(yùn)行各種坑爹報(bào)錯(cuò)問題及解決方法【推薦】
1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress
之前的會(huì)話沒有關(guān)閉,然后你又運(yùn)行了測(cè)試實(shí)例,也沒有設(shè)置覆蓋.
解決:
1. 重新停止appium服務(wù),開啟Appium服務(wù)
2. 在Genarel Setting那里設(shè)置覆蓋Session,重啟Appium
測(cè)試結(jié)束在AfterClass加driver.quit()
2. error: Failed to start an Appium session, err was: Error: Command failed: C:\Windows\system32\cmd.exe /s /c “D:\android-sdk-windows\platform-tools\adb.exe -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:

沒有鏈接上手機(jī)或者模擬器,請(qǐng)確認(rèn)已經(jīng)連接成功,重新鏈接
3. error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device.

手機(jī)系統(tǒng)低于4.2,appium不支持4.2.2以下的系統(tǒng),請(qǐng)換一個(gè)手機(jī)或者模擬器來測(cè)試。
4. Error: Permission to start activity denied.
**activity在清單文件里面沒添加Android:exported=”true”的話,你不能直接打開對(duì)應(yīng)的activity,需要從啟動(dòng)頁(yè)activity打開。
exported屬性就是設(shè)置是否允許activity被其它程序調(diào)用**
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路徑錯(cuò)誤,改為完整正確的activity路徑
6. error: Failed to start an Appium session, err was: Error: ‘java - version' failed. Error: Command failed: C:\Windows\system32\cmd.exe /s /c “java -version”
Java版本錯(cuò)誤,請(qǐng)安裝最新的版本。
7.> info: [debug] Error: Command failed: C:\Windows\system32\cmd.exe /s /c “D:\android-sdk-windows\platform-tools\adb.exe -s 8806a0b0 shell “echo ‘ready‘“error: unknown host service

鏈接手機(jī)失敗,重新鏈接手機(jī)即可,我就是重新拔插了一下usb
Error: Command failed: C:\Windows\system32\cmd.exe /s /c “D:\android-sdk-windows\platform-tools\adb.exe -s 8806a0b0 shell “echo ‘ping'”“
error: unknown host service
adb被突然占用導(dǎo)致,例如你在運(yùn)行用例的時(shí)候運(yùn)行了模擬器。
8、error: Failed to start an Appium session, err was: Error: com.bj58.finance.agent/.LuncherActivity never started. Current: com.bj58.finance.agent/.NavigateActivity

次種情況常發(fā)生在app有引導(dǎo)頁(yè)時(shí)
解決方案:android初始化參數(shù)里添加 desired_caps['waitappActivity'] = 'com.bj58.finance.agent.LuncherActivity'
ps:跟機(jī)子模擬器或機(jī)型有一定關(guān)系,目前沒有100%解決
技巧 1. 每次測(cè)試都重新安裝app
為capabilities色設(shè)置noReset為true
capabilities.setCapability(“noReset”, true);
2. 中文亂碼
編碼問題,Android Studio修改文件編碼的方法,最底部的UTf-8,點(diǎn)擊選GBK就可以了,reload文件。(ps: 先把文件內(nèi)容全選復(fù)制一下再轉(zhuǎn)換編碼,再粘貼,不然文件內(nèi)容就變亂碼了)

3. 清除編輯框EditText內(nèi)容
/**
* 逐字刪除編輯框中的文字
* @param element 文本框架控件
*/
public void clearText(AndroidElement element){
String className = element.getClass().getSimpleName();
if (className.equals("EditText")){
String text = element.getText();
//跳到最后
driver.pressKeyCode(KEYCODE_MOVE_END);
for (int i = 0; i < text.length(); i ++){
//循環(huán)后退刪除
driver.pressKeyCode(BACKSPACE);
}
}else {
print("不是文本輸入框架,無法刪除文字");
}
}
4. 點(diǎn)擊輸入法鍵盤的搜索方法1: 切換輸入法
利用adb命令先切換為自己的輸入法,按了搜索再切換為appium的輸入法
查看當(dāng)前手機(jī)的輸入法
cmd執(zhí)行下面的的代碼
adb shell ime list -s
可以看到類似下面的結(jié)果,
:\Users\LITP>adb shell ime list -s com.baidu.input_mi/.ImeService com.sohu.inputmethod.sogou.xiaomi/.SogouIME io.appium.android.ime/.UnicodeIME C:\Users\LITP>
執(zhí)行adb命令
先寫好一個(gè)執(zhí)行cmd的方法
/**
* 執(zhí)行adb命令
* @param s 要執(zhí)行的命令
*/
private void excuteAdbShell(String s) {
Runtime runtime=Runtime.getRuntime();
try{
runtime.exec(s);
}catch(Exception e){
print("執(zhí)行命令:"+s+"出錯(cuò)");
}
}
在需要搜索的時(shí)候執(zhí)行下面的代碼,切換的輸入法用自己查看列表的輸入法內(nèi)容,我這里是搜狗輸入法
//使用adb shell 切換輸入法-更改為搜狗拼音,這個(gè)看你本來用的什么輸入法
excuteAdbShell("adb shell ime set com.sohu.inputmethod.sogou.xiaomi/.SogouIME");
//再次點(diǎn)擊輸入框,調(diào)取鍵盤,軟鍵盤被成功調(diào)出
clickView(page.getSearch());
//點(diǎn)擊右下角的搜索,即ENTER鍵
pressKeyCode(AndroidKeyCode.ENTER);
//再次切回 輸入法鍵盤為Appium unicodeKeyboard
excuteAdbShell("adb shell ime set io.appium.android.ime/.UnicodeIME");
相關(guān)文章
淺談Android Service服務(wù)的高級(jí)技巧
這篇文章主要介紹了淺談Android 服務(wù)的高級(jí)技巧,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Android 高版本API方法在低版本系統(tǒng)上的兼容性處理
本文主要介紹Android 高版本API方法在低版本系統(tǒng)上的兼容性處理的問題,這里提供了解決辦法,并附簡(jiǎn)單示例,來詳細(xì)說明解決問題步驟,有需要的小伙伴可以參考下2016-09-09
Android開發(fā)之資源目錄assets與res/raw的區(qū)別分析
這篇文章主要介紹了Android開發(fā)之資源目錄assets與res/raw的區(qū)別,結(jié)合實(shí)例形式分析了Android開發(fā)中資源目錄assets與res/raw的具體功能、使用方法與區(qū)別,需要的朋友可以參考下2016-01-01
Android開發(fā)實(shí)現(xiàn)Gallery畫廊效果的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)Gallery畫廊效果的方法,結(jié)合具體實(shí)例形式分析了Android使用Gallery實(shí)現(xiàn)畫廊功能的具體操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-06-06
Android開發(fā)使用Handler的PostDelayed方法實(shí)現(xiàn)圖片輪播功能
這篇文章主要介紹了Android開發(fā)使用Handler的PostDelayed方法實(shí)現(xiàn)圖片輪播功能,結(jié)合實(shí)例形式分析了Android基于Handler的PostDelayed方法實(shí)現(xiàn)圖片輪播功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
Android 開機(jī)應(yīng)用掃描相關(guān)總結(jié)
本篇文章只是作為指南引導(dǎo)去看PkMS,不會(huì)貼大段代碼進(jìn)行分析,更多是基于方法分析實(shí)現(xiàn)的邏輯,另外就是代碼是基于Android 11,與Android 10之前代碼有比較大的差別。2021-05-05
android之App Widget開發(fā)實(shí)例代碼解析
本篇文章主要介紹了App Widget框架的實(shí)例應(yīng)用,AppWidget就是我們平常在桌面上見到的那種一個(gè)個(gè)的小窗口,利用這個(gè)小窗口可以給用戶提供一些方便快捷的操作。有需要的可以了解一下。2016-11-11
總結(jié)Android中多線程更新應(yīng)用的頁(yè)面信息的方式
這篇文章主要介紹了總結(jié)Android中多線程更新應(yīng)用的頁(yè)面信息的方式,文中共總結(jié)了runOnUiThread、Handler、AsyncTask異步以及View直接在UI線程中更新的方法,需要的朋友可以參考下2016-02-02
Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能
Android內(nèi)部沒有控件來直接顯示文檔,跳轉(zhuǎn)WPS或其他第三方文檔App體驗(yàn)性不好,使用騰訊X5內(nèi)核能很好的解決的這一問題這篇文章主要介紹了Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能,需要的朋友可以參考下2019-10-10
Android中的Looper對(duì)象詳細(xì)介紹
這篇文章主要介紹了Android中的Looper對(duì)象,需要的朋友可以參考下2014-02-02

