it-swarm.com.de

Geben Sie "Enter key" in Appium Testing ein

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?

4
pratik03

Vor Gebrauch

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

Stellen Sie die folgenden gewünschten Funktionen ein

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

Senden mit Schlüsselereignis Verwenden Sie entweder: driver.press_keycode(66) oder adb Shell input keyevent 66

2
Thejus Krishna

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

0
Shubham Jain

Das hat bei mir funktioniert:

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