1. 程式人生 > >appium執行各種坑爹報錯問題及解決方法

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

可以看到類似下面的結果,

C:\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執行各種問題解決方法

1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress 之前的會話沒有關閉,然後你又運行了測試例項,也沒有設定覆蓋. 解決: 1. 重新停止appi

自動化測試工具TW解決方法

ima -1 需要 1.2 使用 policy 報錯 span 技術 自動化測試工具TestWriter使用時遇到的環境配置問題及解決方法如下,歡迎大家一起溝通交流~ 1.1 TW環境 1.1.1 Agent無法連接至服務器 1) 如果Agent與服務端不在一個網段,需要

mysql數據庫表字段使用DESC等關鍵字解決方法

直接 方式 sel max desc base 字段名 字段 方法 <!-- desc是MySQL數據庫的關鍵字,作為字段名直接使用會報錯 --><sql id="Base_Column"> id,mol,ip,port,name,t.desc,m

KVM使用virt-sysprep -d 清理機器信息解決方法

版本 centos pass random manager output seed use arch 報錯信息: [root@monitor log]# virt-sysprep -d centos6-raw40 [ 0.0] Examining t

jmeter+ant+Jenkins 解決方法記錄

解決方法 nbsp efs plane csv def orm put erp 1.Ant將Jmeter的jtl文件轉為html文件報“前言中不允許有內容” 在JMeter的bin目錄中找到jmeter.properties; 將文件中#jmeter.save.savese

maven部署ojdb14.jar到nexus倉庫解決方法

部署命令: mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpack

Python3 爬蟲編寫解決方法整理

將爬蟲執行過程中遇到的錯誤進行整理,方便後來查詢 執行環境:Python3.6+Pydev 編碼錯誤 執行時候報錯:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\u20

IntelliJ IDEA 解決方法(1)

問題一:“錯誤: 找不到或無法載入主類 Main”解決方法:工具欄右上-點選Edit Configurations-將Main class中的名字修改為自己程式中的class名。 問題二:“Error:(6, 8) java: 類_02是公共的, 應在名為 _02.java 

Hadoop Jar 執行HBase類的解決方法

問題如下: [[email protected] ~]# hadoop jar testHBase-1.0-SNAPSHOT.jar com.qf.hbase.hbasewordcount.HBaseWordCountApp /tmp/hbase-root/hba

pip install Scrapy解決方法

以下是我個人在安裝scrapy時遇見的問題及我的解決方法 (1)執行命令 pip install Scrapy 在執行到“Collecting Twisted>=13.1.0 (from S

SpringBoot 提交Json格式資料解決方法

錯誤資訊 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' no

spring ibatis 整合 abator自動生成的xml檔案解決方法

程式中的部分程式碼由abator自動生成, dao及其daoimpl package com.our311.demo.dao; import com.our311.demo.dao.model.TbUser; import com.our311.demo.dao.model

centos7編譯安裝LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常見問題解決方法

LNMP的安裝與配置 nginx-1.16.0安裝及配置: 第一步:前往官網下載nignx原始碼包     下載完畢後上傳至伺服器(先安裝lrzsz) yum -y install lrzsz 安裝完畢後執行: rz 找到nginx包後點擊確定,即可上傳成功   第二步: 解壓

appium解決方案

【已解決】mac上手動開啟appium報錯:“Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path” 解決過程:   使用命令appiu

python已寫內容中可能的解決辦法

blog cas bin sci any nta enc int onerror 理論上我發的每個短文,直接復制放到py裏面,python xx.py是可以執行的,不過因為版本,編碼什麽的問題會有報錯,詳見這裏 報錯: SyntaxError: Non-ASCII char

webpack——安裝解決辦法

文檔 .com 開始 global 執行 nod 的區別 查看 你會 ①先刪除 刪除全局webpack-cli webpack4.x開始官方文檔是說要安裝cli所以如果的在用4.+就需要卸載cli npm uninstall -g webpack-cli # 註釋給我這種小

gsoap入門:C/C++程式碼生成編譯--包含soapcpp2 -qname新增名稱空間後解決方法--可用

gsoap是什麼 先來一段百度百科,說說gsoap是什麼: gSOAP一種跨平臺的開源的C/C++軟體開發工具包。生成C/C++的RPC程式碼,XML資料繫結,對SOAP Web服務和其他應用形成高效的具體架構解析器,它們都受益於一個XML介面。 這個工具包提供了一個全面和透明的XML資料繫結解決方案,A

debug模式執行ClassNotFoundException 解決方法

前奏: 連續一個月的高強度開發接近尾聲,昨天拿到設計logo準備換上,但是一直不生效。 <application android:name="com.example.lenovo.zhongye.ZhongYeApplication" androi

Hbasewindows系統下啟動解決辦法

今天在本地windows電腦上,裝pinpoint時,需要先安裝一個Hbase資料庫,按照教程下載啟動Hbase資料庫時,卻啟動報錯:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop bin

AndroidStudio解決

1.報錯詳情 以下是我遇到的問題: 原因:我為了整理工作區(AndroidStudio的專案檔案),其中刪除了一些檔案,並把一些不在同一檔案下的專案合併在一個檔案,改變了其原來的儲存路徑,從而導致了報錯 2.解決方法 File->Invalidate Cac