web-dev-qa-db-fra.com

Entrez "Enter key" dans Appium Testing

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?

4
pratik03

Avant d'utiliser 

((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER);

Définir les capacités souhaitées suivantes

capabilities.setCapability("unicodeKeyboard", "true");                                     
capabilities.setCapability("resetKeyboard", "true");
3
anonyMouse

Envoyer avec keyevent Soit utiliser: driver.press_keycode(66) Ou Utiliser adb Shell input keyevent 66

2
Thejus Krishna

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 :)

0
Shubham Jain

C'est ce qui a fonctionné pour moi:

try {
    driver.hideKeyboard();
} catch (Exception e) {
    e.printStackTrace();
}
0
Bill Hileman