Мобильный телефон: Android: как нажать Enter после ввода текста

Сценарий такой:

  1. Есть поле пароля, куда я ввожу текст (это делается с помощью sendKeys)
  2. Теперь нет кнопки отправки/ввода
  3. Поэтому я должен нажать Enter и войти в приложение

Ниже приведены несколько способов, которые я искал и пробовал, но они не сработали:

  1. element.sendKeys(Keys.ENTER);
  2. element.sendKeys(Keys.RETURN);

  3. Я использую Java-клиент 7.0.0 (из-за некоторых других полезных функций), и в нем нет доступных методов типа pressKeys https://monosnap.com/file/tjp2F86HH0kxFFU9SJKGII8fBEK45j

driver.pressKey(new KeyEvent(AndroidKey.ENTER)); (невозможно использовать из-за Java Client 7.0.0)
((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER); (невозможно использовать из-за Java Client 7.0.0)

Ожидается:
После ввода пароля нажмите Enter, и я ожидаю, что пользователь должен войти в систему.

Фактически:
Пробовал несколькими способами, и после sendKeys введенный пароль стирается.

Пожалуйста, дайте мне знать, как я могу автоматизировать этот сценарий.
Спасибо!


person Dhanesh    schedule 04.09.2019    source источник


Ответы (4)


и другими способами, -EditText

 <EditText
  android:imeOptions="actionDone" />

-OnEditorAction

etMobileNumber.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId != 0 || event.getAction() == EditorInfo.IME_ACTION_DONE) {
            mRegisterButton.performClick(); // Your login button click
            return true;
        } else {
            return false;
        }
    }
});
person yarn    schedule 04.09.2019
comment
Не публикуйте те же ответы, что и другие, и рассказывайте, в чем разница, которую вы ответили, по сравнению с другими. - person coder; 04.09.2019

Добавить в EditText Xml

 <EditText
      android:id="@+id/etMobileNumber"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:inputType="number"
      android:imeOptions="actionDone"
      android:maxLength="10"
      android:maxLines="1" />

и код события

   etMobileNumber.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId != 0 || event.getAction() == KeyEvent.ACTION_DOWN) {
                mRegisterButton.performClick(); // Your login button click
                return true;
            } else {
                return false;
            }
        }
    });
person Ganesh Pokale    schedule 04.09.2019

Вы делаете это, устанавливая OnKeyListener на свой EditText.

passwordEditText = (EditText) findViewById(R.id.clEtAddCourse);
passwordEditText.setOnKeyListener(new OnKeyListener()
{
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_DOWN)
        {
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_DPAD_CENTER:
                case KeyEvent.KEYCODE_ENTER:
                    //.. here you get enter button of keyboard pressed event perform you action here.
                    return true;
                default:
                    break;
            }
        }
        return false;
    }
});
person Manoj Kumar    schedule 04.09.2019

Метод .submit() также может использовать вместо ввода действие.

element.sendKeys("password");
element.submit();
person frianH    schedule 05.09.2019