#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. Можете ли вы привести конкретный пример команды оболочки, которую вы использовали?