我正在使用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()。但是没有观察到任何变化。
答案 0 :(得分:0)
最佳解决方案是首先使用xpath或Id点击元素,然后在元素上键入,这是失败证明并且将起作用 你也可以在点击后给出超时,也可以通过按回键值来隐藏键盘(4) 或隐藏键盘命令