2016-01-27 7 views
6

ich folgende Ausnahme erhalten:
Soft-Tastatur nicht vorhanden ist, kann die Tastatur nicht verstecken - Appium android

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (Original error: Soft keyboard not present, cannot hide keyboard) (WARNING: The server did not provide any stacktrace information) 
    Command duration or timeout: 368 milliseconds 

I driver.hideKeyboard bin mit() Soft-Input-Tastatur zu verbergen, die auf dem Bildschirm geöffnet ist.
Wie stellen Sie sicher, dass die Tastatur geöffnet ist, bevor Sie sie verstecken? ODER eine andere Problemumgehung?

Antwort

5

Verwenden adb Befehl zu prüfen, ob Tastatur aufgetaucht ist oder nicht

adb shell dumpsys input_method | grep mInputShown 
Output : mShowRequested=true mShowExplicitlyRequested=false mShowForced=false mInputShown=true 

wenn mInputShown=true dann ja Software-Tastatur hat aufgetaucht. Dann nutzen driver.pressKeyCode(AndroidKeyCode.BACK);

Eine Möglichkeit, Java zu tun, besteht darin,

Process p = Runtime.getRuntime().exec("adb shell dumpsys input_method | grep mInputShown"); 
     BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String outputText = ""; 

      while ((outputText = in.readLine()) != null) { 

       if(!outputText.trim().equals("")){ 
         String keyboardProperties[]=outputText.split(" "); 
         String keyValue[]=keyboardProperties[keyboardProperties.length-1].split("="); 

         String softkeyboardpresenseValue=keyValue[keyValue.length-1]; 
         if(softkeyboardpresenseValue.equalsIgnoreCase("false")){ 
           isKeyboardPresent=false; 
         }else{ 
           isKeyboardPresent=true; 
         } 
       } 
      } 
      in.close(); 

PS: Bitte nicht driver.navigate().back() verwenden als sein Verhalten nicht auf allen Geräten gleich sein können.

+0

Wie diese adb-Dump automatisieren? danke – AnswerDroid

+0

Bitte überprüfen. Ich habe das Code-Snippet –

6

ich auch diesen Fehler, ich korrigieren, indem Sie den folgenden Code in der setUp Methode:

capabilities.setCapability("unicodekeyboard", true); 
capabilities.setCapability("resetkeyboard", true); 

Sie können Antworten hier überprüfen: Keyboard in Android physical device isn’t always hidden while using Appium

+1

aktualisiert. Danach muss ich die Tastatur nirgends verstecken? – AnswerDroid

+0

Ja, in diesem Fall müssen Sie zu den Einstellungen Ihres Telefons gehen. Sie werden feststellen, dass die Standardtastatur auf appium eingestellt ist, so dass keine Tastatur mehr benötigt wird. Dies ist die bessere Lösung, die ich viel ausprobiert habe. – Emna

+1

danke nochmal! Ich werde es überprüfen und es als Antwort markieren, wenn funktioniert – AnswerDroid

Verwandte Themen