当前位置: 首页 > 知识库问答 >
问题:

Appium Robot Framework无法运行关键字来使用自定义定位器策略查找元素

卫和洽
2023-03-14

我正在使用Robot Framework和Appium来自动化一个Android原生应用程序。我们已经转移到espresso驱动程序来运行这些测试,并且需要使用view-tag定位器来识别元素。但是,Appium机器人库并没有对这个定位器策略的支持。我已经在下面写了自定义关键字

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

请救命!

共有1个答案

钮晟
2023-03-14

***Variables***表只能定义静态字符串,不能调用其他关键字。您将${signUpEmail}定义为文字字符串“Call Method Find by viewtag”(减去引号)。在任何地方使用它,该完整字符串将是传递给关键字的内容。

如果要调用find by viewtag关键字,则不需要使用调用方法。这是一个正常的关键字,所以你可以用正常的方式调用它。例如:

${result}=  Find By ViewTag  a_view_tag
 类似资料:
  • 以下策略可用于仓库基础结构来解决查询。你可以在XML配置中的命名空间通过query-lookup-strategy属性来配置策略或者在JAVA配置中通过Enable${store}Repositories声明queryLookupStrategy属性。有些策略可能对于特别的datastores并不支持。 CREATE 从查询方法名来尝试构建一个特别的数据查询。一般的方法都是从方法名称中移除已知设定

  • 用于自定义设置隐藏虚拟机、镜像菜单功能以及配置第三方回调地址。 策略定义用于定义策略的具体内容,如设置隐藏虚拟机、系统镜像菜单功能以及配置第三方回调地址等。策略配置完成后,还需要将策略分配到具体项目、域或全局,策略分配成功后将出现在策略分配列表。即策略在具体的应用范围内才会生效。当策略在不同应用范围内有冲突时,最小应用范围的策略生效。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击

  • 我需要一个自定义id生成器,保存最后使用的id,而不是下一个可用的,所以基于这个答案https://stackoverflow.com/a/10648572/187423我创建了一个自定义生成器扩展TableGenerator。 我已经在调试模式下确定我的自定义生成器没有被添加到org.hibernate.id.factory.internal.DefaultIdfierGeneratorFact

  • 我在jOOQ 3.13.1,dropwizard 2.0.7。为了将jOOQ和dropwizard放在一起,我使用(https://droptools.bendb.com/jooq/)。我使用自定义生成策略来为我的setter和getter维护骆驼大小写。名称按预期进入。 记录对象具有各自列的数据。然而,我不断从数据库中获取错误,我试图在非空列上设置“null”。 我只有在尝试创建新记录时才看到这

  • New in Django 1.7. Django为过滤提供了大量的内建的查找(例如,exact和icontains)。这篇文档阐述了如何编写自定义查找,以及如何修改现存查找的功能。关于查找的API参考,详见查找API参考。 一个简单的查找示例 让我们从一个简单的自定义查找开始。我们会编写一个自定义查找ne,提供和exact相反的功能。Author.objects.filter(name__ne

  • 与Selenium IDE一样,WebDriver使用相同的定位策略集来指定特定Web元素的位置。 因为,正在使用带有Java的WebDriver; 每个定位策略在Java中都有自己的命令来定位Web元素。 注意 :在和方法的帮助下,在Webdriver中定位Web元素。 WebDriver中使用的定位策略列表: 按ID定位策略 按名称查找策略 按类名定位策略 按标签名称定位策略 通过链接文本定位