android xpath索引问题

5q4ezhmt  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(356)

非常新的android测试。
我遇到了这个问题

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

我知道在imageview1中,“1”是元素的索引。
这里是什么???
更新:
我正在运行一个测试(移动应用程序)。上面的xpath是点击bell图标。
它确实完美地点击了铃声图标。
但是今天当我运行我的测试时,它没有点击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时,会单击bell图标。
两个XPath是一样的吗??
为什么这个新xpath这么长?有没有办法缩短这个时间??
感谢您的帮助!!!

vohkndzv

vohkndzv1#

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

au9on6nz

au9on6nz2#

您将使用appium(上面已经提到)获得绝对xpath,而您正在使用的appium类似于//android.widget.imageview[1])[3]是图标的相对xpath。
绝对xpath:它是从根元素到特定元素的路径。相对xpath:元素的引用路径或元素的特定路径。

b1uwtaje

b1uwtaje3#

尝试使用类名访问贝尔按钮。
(//*[@class=“class name”])[2]

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

相关问题