Senden/Drücken Eingabe Taste von der Soft-Tastatur in Appium in Android Automation-Tests?
Ich habe verschiedene Optionen ausprobiert, aber keine funktioniert. Statt die Taste zu drücken, wird der im Textbereich eingegebene Text gelöscht. Unten ist der Code (in Java-Sprache):
String app_package_name = "abc.xyz.Android";
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Nexus_5X_API_23");
capabilities.setCapability("platformVersion", "6.0");
capabilities.setCapability("appPackage", app_package_name);
capabilities.setCapability("appActivity", app_package_name + ".activity.StartupActivity_");
String url = "http://127.0.0.1:4723/wd/hub";
AndroidDriver driver = new AndroidDriver(new URL(url), capabilities);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
By password = By.id(app_package_name_with_id + "et_password");
WebElement enterPassword = driver.findElement(password);
enterPassword.click();
driver.getKeyboard().sendKeys("12345");
driver.getKeyboard().sendKeys(Keys.ENTER); // THIS IS NOT WORKING.
driver.getKeyboard().sendKeys(Keys.RETURN); // THIS IS ALSO NOT WORKING.
driver.pressKeyCode(AndroidKeyCode.ENTER); // THIS IS ALSO NOT WORKING.
driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_ENTER); // SAME HERE.
enterPassword.sendKeys(Keys.ENTER); // SAME HERE.
Bitte, ob mir jemand dabei helfen kann?
Vor Gebrauch
((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER);
Stellen Sie die folgenden gewünschten Funktionen ein
capabilities.setCapability("unicodeKeyboard", "true");
capabilities.setCapability("resetKeyboard", "true");
Senden mit Schlüsselereignis Verwenden Sie entweder: driver.press_keycode(66)
oder adb Shell input keyevent 66
Sie können die Roboterklasse verwenden: -
Robot robot;
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Es wird nicht empfohlen, Ihre Testfälle im Hintergrund auszuführen. Das Roboter-Framework wird nur unbeaufsichtigt eintreten, ohne etwas zu behaupten.
Oder versuchen Sie es mit folgendem Code: -
driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_ENTER );
Quelle: - (Es gibt auch andere Möglichkeiten, die Eingabetaste zu drücken): -
https://discuss.appium.io/t/how-to-click-enter-after-entering-some-text/3136/4
Hoffe es wird dir helfen :)
Das hat bei mir funktioniert:
try {
driver.hideKeyboard();
} catch (Exception e) {
e.printStackTrace();
}