Невозможно ввести текст или нажать клавиши или нажать код ключа

#robotframework #appium-android

#robotframework #appium-android

Вопрос:

Я очень новичок в robot framework, работаю с ним в pycharm. Я просто хочу ввести некоторый текст в текущее поле. но ни один из них не работает. Я пробовал

 Press Keycode  a
Press Keys     text_field       q
input text      ${mylocator}     ${string-abc}


If I am using the correct library?

        *** Settings ***
        Library  AppiumLibrary  run_on_failure=AppiumLibrary.CapturePageScreenshot
        Library      Selenium2Library   run_on_failure=AppiumLibrary.CapturePageScreenshot
    
       *** Variables ***
       ${MsgEditor}     //*[@class='android.widget.RelativeLayout' and @resource-id='com.test.abc.work.cac:id/editor']
    
    *** Test Cases ***
    Add item
         Press Keys    text_field     q <--error browser not open
        \or
        appiumlibrary.Input Text    ${MsgEditor}    update <== error Message: Cannot set the element to 'update'. Did you interact with the correct element?
 

обновлено, что нажатие клавиш по-прежнему не удается. ошибка:

 KEYWORD Selenium2Library . Press Keys text_field, q
Documentation:  
Simulates the user pressing key(s) to an element or on the active browser.

Start / End / Elapsed:  20201218 10:05:20.575 / 20201218 10:05:21.339 / 00:00:00.764
00:00:00.755KEYWORD AppiumLibrary . Capture Page Screenshot
10:05:20.575    TRACE   Arguments: [ 'text_field' | 'q' ]   
10:05:20.581    INFO    Sending key(s) ('q',) to text_field element.    
10:05:21.339    FAIL    No browser is open. 
10:05:21.339    DEBUG   Traceback (most recent call last):
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrary__init__.py", line 471, in run_keyword
    return DynamicCore.run_keyword(self, name, args, kwargs)
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesrobotlibcore.py", line 103, in run_keyword
    return self.keywords[name](*args, **(kwargs or {}))
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrarykeywordselement.py", line 895, in press_keys
    element = self.find_element(locator)
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrarybasecontext.py", line 74, in find_element
    return self.element_finder.find(locator, tag, True, required, parent)
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrarylocatorselementfinder.py", line 74, in find
    parent=parent or self.driver)
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrarybasecontext.py", line 32, in driver
    return self.ctx.driver
  File "c:userstesterpycharmprojectsandroidtestvenvlibsite-packagesSeleniumLibrary__init__.py", line 547, in driver
    raise NoOpenBrowser('No browser is open.')
 

Ошибка ввода текста. У меня такой же вводимый текст в другом поле и работает. Я попробовал нажать на другое поле с помощью этого локатора, и это работает.
есть ли у приложения проблема с этим элементом? но я могу нажать на клавиатуре вручную после нажатия на поле.

Ответ №1:

Я рекомендую сначала прочитать официальную документацию: http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html а также руководство пользователя: https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

Press Keys это не ключевое слово из AppiumLibrary. Это ключевое слово из SeleniumLibrary (https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#Press Keys ), но вы не импортируете его в свой проект. И даже если вы его импортировали, это ключевое слово принимает два аргумента (locator и keys), поэтому вам нужно использовать его правильно.

 *** Test Cases ***
     Press Keys     a
 

В дополнение к тому, что я сказал, нет имени тестового примера, это неверно и не будет работать, фактически это выдаст вам следующую ошибку:

Имя тестового примера не может быть пустым.

Вы правильно использовали ключевое слово Input Test из AppiumLibrary. Однако вам может потребоваться проверить правильность вашего локатора. Мы не можем этого сказать, поскольку вы не включили эту информацию в свой вопрос.

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

1. Извините, я просто частично вырезал тестовый пример. Имя тестового примера есть. С этим проблем нет.

2. Также локатор правильный, поскольку я могу использовать его. Просто эта клавиша нажатия не работает. Я не вижу ни одного вставленного ключа.

3. Хорошо, я увидел ошибку при нажатии клавиш, мне нужно, чтобы text_field затем следовал value .

4. я только что попробовал нажать клавиши, и ошибка в браузере не открывается.

Ответ №2:

Я использовал другой метод. Adb shell вводит текст для запуска текста

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

1. Можете ли вы привести конкретный пример команды оболочки, которую вы использовали?