【问题标题】:Replacement for name locator strategy in Appium version >= 1.5.0Appium 版本 >= 1.5.0 中名称定位器策略的替换
【发布时间】:2016-07-06 12:54:32
【问题描述】:

我正在使用 java 和 appium 为 Android/iOS 编写移动应用自动化测试用例。

我已将我的 appium 版本从 1.4.16 升级到 1.5.3。现在我无法使用名称定位器。

名称定位器:-

By.name("name here")

移除 Appium v1.5 中长期弃用的名称定位器策略

我试过 findElementByAccessibilityId 定位器。但这对我没有帮助。

driver.findElementByAccessibilityId("name");

仅供参考,我没有特定的 id 或类来使用它。名称定位器的替代品是什么?

【问题讨论】:

标签: java android ios appium


【解决方案1】:

在 xpath 中使用通配符可能会非常慢,因为它会扫描整个树。如果有超过 1 个具有相同名称的项目,也很容易返回不正确的元素。尽可能使用精确的定位器。示例:By.xpath("//UIAButton[@name='foo']")

【讨论】:

    【解决方案2】:

    如果accessibilityID 没有让您到达那里,您是否尝试过将xpath 与以下类似的东西一起使用?

    By.xpath("//*[@name='enter name here']")
    

    【讨论】:

    • 我已经尝试过 xpath。其作品。我指的是“文本”作为名称。 AccessibilityID 可以访问哪些属性?
    • 我认为 iOS 和 Android 是不同的: iOS:它首先寻找匹配的辅助功能 ID;如果没有找到,它会查找 label 属性。从那里,我发现它看起来很好 ole name 属性(尽管我知道许多人使用它作为名称定位器的替代品没有成功)。 Android:它查看 android:id 属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2020-09-21
    • 2019-04-23
    • 2022-08-20
    相关资源
    最近更新 更多