sendkeys在Appium RemotewebDriver中无法正常工作

时间:2016-06-03 09:10:49

标签: android webdriver appium sendkeys

我正在使用Appium 1.4.16自动化存储在我的系统中的apk文件在真正的Android设备中。我正在使用java-client 3.4.1 这是代码:

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();
    }

}

}

我没有在Appium服务器中收到任何错误,但在UI中遇到了奇怪的操作。 在用户名字段中输入值时,它会自动点击登录按钮,然后再次在密码字段中输入值。在这里,它始终以输入' 2'在现场,以8位密码结束。但我提供的密码是6位数。然后没有任何反应。

我也试过在每个动作之间给出Thread.sleep()。但是没有观察到任何变化。

1 个答案:

答案 0 :(得分:0)

最佳解决方案是首先使用xpath或Id点击元素,然后在元素上键入,这是失败证明并且将起作用 你也可以在点击后给出超时,也可以通过按回键值来隐藏键盘(4) 或隐藏键盘命令