2016-06-03 25 views
1

Ich benutze Appium 1.4.16, um apk-Datei in meinem System in einem echten Android-Gerät gespeichert zu automatisieren. Ich bin mit Java-Client 3.4.1 Hier ist der Code:sendskeys funktioniert nicht richtig in Appium RemotewebDriver

public static void main(String[] args) { 

    File app = new File("C:\\Users\\dell\\Downloads\\App.apk"); 


    DesiredCapabilities capabilities = new DesiredCapabilities(); 

    capabilities.setCapability("device", " Android"); 
    //mandatory capabilities 
    capabilities.setCapability("deviceName","Android"); 

    capabilities.setCapability("platformName","Android"); 

    capabilities.setCapability("udid", "849e82c6"); 

    capabilities.setCapability("app",app.getAbsolutePath()); 

    capabilities.setCapability("appPackage", "xxxxxxxxxxx"); 

    capabilities.setCapability("appActivity", "xxxxxxxxxx.MainActivity"); 

    try{ 


    RemoteWebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities); 

    System.out.println("Device Started"); 

    driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS); 

    RemoteWebElement number = (RemoteWebElement)driver.findElement(By.xpath("//android.widget.EditText[@resource-id='xxxx' and @content-desc = 'Mobile Number']")); 

    number.sendKeys("90002"); 

    RemoteWebElement passwordKey = (RemoteWebElement)driver.findElement(By.xpath("//android.widget.EditText[@resource-id='yyyyy']")); 

    passwordKey.sendKeys("ezr123"); 

    RemoteWebElement loginButton = (RemoteWebElement)driver.findElement(By.xpath("//android.view.View[@resource-id='ezm_submit_login_form']")); 

    loginButton.click(); 

    }catch(Exception e){ 

     e.printStackTrace(); 
    } 

} 

}

ich keinen Fehler in Appium Server bin immer aber mit Blick auf seltsame Aktionen in UI. Bei der Eingabe des Werts in das Feld "Benutzername" wird automatisch auf die Schaltfläche "Anmelden" geklickt und der Wert im Feld "Passwort" erneut eingegeben. Hier beginnt es immer mit der Eingabe von '2' in das Feld und endet mit 8-stelligem Passwort. Aber mein mitgeliefertes Passwort ist 6-stellig lang. Dann passiert nichts.

Ich habe auch versucht, Thread.sleep() zwischen jeder Aktion geben.Aber keine Änderung wird beobachtet.

+0

Update auf Appium 1.5.2 – Emna

+0

Haben Sie versucht, Ihre Tastatur zu verbergen und geben Sie dann Ihren Text ein? –

Antwort

0

Beste Lösung ist, das Element zuerst mit dem Xpath oder ID zu tippen, dann auf das Element tippen, das ist fehlerfrei und funktioniert U kann auch Zeitlimit nach Tippen geben und auch Tastatur durch Drücken der Taste Wert für zurück ausblenden (4) Oder verstecken Tastaturbefehl