【问题标题】:Android XPath index issueAndroid XPath 索引问题
【发布时间】:2020-12-09 11:54:32
【问题描述】:

对 Android 测试非常陌生。
我遇到了这个 Xpath

xpath: (//android.widget.ImageView[1])[3]

我知道在 ImageView1 "1" 是元素的索引。
这里的[3]是什么???

更新:

我正在运行测试(移动应用)。上面的 XPath 是点击 Bell 图标。
它确实完美地点击了铃铛图标。
但是今天当我运行我的测试时,它没有点击铃铛图标,而是点击了用户个人资料图片。

使用 appium,我发现 Bell 图标的 xpath 如下:

xpath: /hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[1]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[1]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ImageView

现在,当我使用这个新的 xpath 时,会单击响铃图标。

两个 Xpath 是否相同?
为什么这个新的 xpath 这么长?有没有办法缩短这个??
任何形式的帮助真的很感激!!!

【问题讨论】:

  • [3]出现个数
  • @JaSON 请检查​​我更新的问题。非常感谢您对此的意见。

标签: java android testing xpath appium


【解决方案1】:

表达式//android.widget.ImageView[1] 选择每个android.widget.ImageView,它是其父级的第一个子级。这通常会选择一组节点。 [3] 选择此集合中的第三个节点。

【讨论】:

  • 谢谢。请检查我更新的问题。非常感谢您对此的意见。
  • 抱歉,您的新问题超出了我的知识范围。
【解决方案2】:

您正在使用 appium 获得绝对 xpath(您在上面已经说过),而您使用的那个像 //android.widget.ImageView[1])[3] 是图标的相对 xpath。

绝对 xpath :它是从根元素到特定元素的路径。 相对 xpath :它是元素的引用路径或元素的特定路径。

【讨论】:

    【解决方案3】:

    尝试使用类名访问铃铛按钮。

    (//*[@class="类名"])[2]

      (//*[@class="android.widget.ImageView"])[2]
    

    【讨论】:

      猜你喜欢
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      相关资源
      最近更新 更多