Comment envoyer/appuyez sur Entrée touche depuis le clavier virtuel dans Appium dans les tests Android Automation?
J'ai essayé plusieurs options, mais aucune d'entre elles ne fonctionne. Au lieu d'appuyer sur la touche, elles effacent le texte saisi dans la zone de texte. Ci-dessous, le code (en langage Java):
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.
S'il vous plaît si quelqu'un peut m'aider à y parvenir?
Avant d'utiliser
((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER);
Définir les capacités souhaitées suivantes
capabilities.setCapability("unicodeKeyboard", "true");
capabilities.setCapability("resetKeyboard", "true");
Envoyer avec keyevent Soit utiliser: driver.press_keycode(66)
Ou Utiliser adb Shell input keyevent 66
Vous pouvez utiliser la classe Robot: -
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();
}
Il n'est pas recommandé que vos scénarios de test soient exécutés en arrière-plan. Le cadre robotique va entrer de manière indifférente sans rien affirmer.
Ou vous pouvez essayer ci-dessous le code: -
driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_ENTER );
Source: - (Il existe d'autres moyens également d'appuyer sur Entrée): -
https://discuss.appium.io/t/how-to-click-enter-after-entering-some-text/3136/4
J'espère que ça vous aidera :)
C'est ce qui a fonctionné pour moi:
try {
driver.hideKeyboard();
} catch (Exception e) {
e.printStackTrace();
}