Я использую Robot Framework и Appium для автоматизации собственного приложения Android. Мы перешли на драйвер эспрессо для запуска этих тестов, и элементы должны быть идентифицированы с помощью локатора view-tag. Однако библиотека Appium Robot не поддерживает эту стратегию локатора. Я написал собственное ключевое слово ниже
from robot.libraries.BuiltIn import BuiltIn
from robot.api.deco import keyword
@keyword(name='Find by ViewTag')
def by_viewtag(tagname):
"""Provides support to find elements using view tag for Espresso driver on Android"""
appiumlib = BuiltIn().get_library_instance('AppiumLibrary')
driver = appiumlib._current_application()
el = driver.find_element_by_android_viewtag(tagname)
print(el)
return el
, и я использую его в своем файле подкачки, чтобы найти объект, подобный следующему:
*** Settings ***
Library ../../../../Resources/Utils/find_elements_utils.py
Library BuiltIn
Library AppiumLibrary
Resource ../../../../Resources/Utils/helpers.robot
*** Variables ***
${loginBtn} = id=btn_sign_in
${signUpEmail}= Call Method Find by ViewTag
Однако при выполнении этого выдается следующая ошибка
Element locator 'Call Method Find by ViewTag' did not match any elements after 20 seconds
Каркас робота считает, что я передаю локатор элементов, когда пытаюсь вызвать ключевое слово, чтобы найти локатор. Может кто-нибудь помочь мне с этим? Есть ли дополнительные функции, которые мне нужно написать, чтобы это произошло?
Пожалуйста, помогите!