Альтернативные способы ввода текста в поле

#appium #robotframework

#appium #robotframework

Вопрос:

Мне нужно протестировать эту форму входа в систему на эмуляторе iOS, но когда я пытаюсь вставить текст в элемент, '//input[@name="email"]' текст вставляется, однако, когда я выбираю элемент, '//input[@name="password"]' текст из первого элемента исчезает, то же самое происходит при нажатии на '//div[@id="react-component-login-header']//button/div/span[1]" элемент.

Я думаю, что проблема связана с тем, как текст вводится в форме, поскольку при использовании Selenium2Library (для рабочего стола) этой проблемы нет.

Есть другой способ, как я могу вставить текст в поле? У меня нет никаких проблем с использованием других библиотек или созданием ключевых слов на Python для вспомогательных тестов (уже сделано в других тестах).

Я уже пробовал с:

  • Ввод текста

  • Вводимое значение

  • Введите пароль (я знаю, но мне нужно было попробовать что-то еще)

 *** Settings ***
Library           Dialogs
Library           AppiumLibrary

*** Variables ***
${defaultTimeout}    15s

*** Test Cases ***
TC001
    [Setup]    Configuration
    Start Test
    Wait Until Page Contains Element    //*[@id='age-gate-yes']    ${defaultTimeout}
    Click Element    //a[@id='age-gate-yes']
    Wait Until Page Contains Element    //a[@href="/profile"]    ${defaultTimeout}
    Click Element    //a[@href="/profile"]
    Wait Until Page Contains Element    //input[@name="email"]    ${defaultTimeout}
    Click Element    //input[@name="email"]
    Input Text    //input[@name="email"]    johndoe@john.doe
    Click Element    //input[@name="password"]
    Input Text    //input[@name="password"]    JohnDoe123
    Click Element    //div[@id='react-component-login-header']//button/div/span[1]
    Wait Until Page Does Not Contain Element    //div[@id='react-component-login-header']//button/div/span[1]    ${defaultTimeout}
    [Teardown]    End Test
  

Я вижу, что текст записывается в поле, но когда контекст этого элемента теряется, текст тоже.

Комментарии:

1. я не понимаю, как вы пытались ввести текст. вы можете попробовать метод SendKey() . driver.findElementById("element id").sendKey("your text")

2. Я попытался использовать ключевое слово для ввода текста из AppiumLibrary: AppiumLibrary. Ввод текста //input[@name=»email»] johndoe@john.doe

3. Вы пробовали метод SendKey() ?

4. Извините, что спрашиваю, но в какой библиотеке есть этот метод? Я уже пробовал библиотеку SendKeys, но без успеха она вводится на моем рабочем столе, а не на виртуальной машине или эмуляторе.

5. это определено в org.openqa.selenium.remote

Ответ №1:

Для Android я решаю проблему, используя ключевое слово «AppiumLibrary.Нажмите код ключа»

Например, отправка «AppiumLibrary.Нажмите код 67 » Мне удалось отправить пробел

https://developer.android.com/reference/android/view/KeyEvent.html