您好,登錄后才能下訂單哦!
小編給大家分享一下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加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:
沒有鏈接上手機或者模擬器,請確認已經連接成功,重新鏈接
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.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! 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:\Windows\system32\cmd.exe /s /c “java -version”
Java版本錯誤,請安裝最新的版本。
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
鏈接手機失敗,重新鏈接手機即可,我就是重新拔插了一下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被突然占用導致,例如你在運行用例的時候運行了模擬器。
8、error: Failed to start an Appium session, err was: Error: com.bj58.finance.agent/.LuncherActivity never started. Current: com.bj58.finance.agent/.NavigateActivity
次種情況常發生在app有引導頁時
解決方案:android初始化參數里添加 desired_caps['waitappActivity'] = 'com.bj58.finance.agent.LuncherActivity'
ps:跟機子模擬器或機型有一定關系,目前沒有100%解決
技巧 1. 每次測試都重新安裝app
為capabilities色設置noReset為true
capabilities.setCapability(“noReset”, true);
2. 中文亂碼
編碼問題,Android Studio修改文件編碼的方法,最底部的UTf-8,點擊選GBK就可以了,reload文件。(ps: 先把文件內容全選復制一下再轉換編碼,再粘貼,不然文件內容就變亂碼了)
3. 清除編輯框EditText內容
/** * 逐字刪除編輯框中的文字 * @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 ++){ //循環后退刪除 driver.pressKeyCode(BACKSPACE); } }else { print("不是文本輸入框架,無法刪除文字"); } }
4. 點擊輸入法鍵盤的搜索方法1: 切換輸入法
利用adb命令先切換為自己的輸入法,按了搜索再切換為appium的輸入法
查看當前手機的輸入法
cmd執行下面的的代碼
adb shell ime list -s
可以看到類似下面的結果,
:\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>
執行adb命令
先寫好一個執行cmd的方法
/** * 執行adb命令 * @param s 要執行的命令 */ private void excuteAdbShell(String s) { Runtime runtime=Runtime.getRuntime(); try{ runtime.exec(s); }catch(Exception e){ print("執行命令:"+s+"出錯"); } }
在需要搜索的時候執行下面的代碼,切換的輸入法用自己查看列表的輸入法內容,我這里是搜狗輸入法
//使用adb shell 切換輸入法-更改為搜狗拼音,這個看你本來用的什么輸入法 excuteAdbShell("adb shell ime set com.sohu.inputmethod.sogou.xiaomi/.SogouIME"); //再次點擊輸入框,調取鍵盤,軟鍵盤被成功調出 clickView(page.getSearch()); //點擊右下角的搜索,即ENTER鍵 pressKeyCode(AndroidKeyCode.ENTER); //再次切回 輸入法鍵盤為Appium unicodeKeyboard excuteAdbShell("adb shell ime set io.appium.android.ime/.UnicodeIME");
以上是“appium運行各種坑爹報錯問題的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。