问题描述
对于Android测试来说是新手。
我碰到了这个Xpath
xpath: (//android.widget.ImageView[1])[3]
我知道在ImageView 1中,“ 1”是元素的索引。
这里的[3]是什么?
更新:
我正在运行测试(移动应用程序)。上面的XPath是点击Bell图标。
它确实完美地点击了铃声图标。
但是今天,当我运行测试时,它没有点击“贝尔”图标,而是点击了用户“个人资料图片”。
使用鸦片,我找到了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这么长?有什么办法可以缩短??
真的很感谢任何帮助!
解决方法
表达式//android.widget.ImageView[1]
选择每个android.widget.ImageView
作为其父级的第一个孩子。通常,这将选择一组节点。 [3]
选择该集合中的第三个节点。
尝试使用班级名称访问响铃按钮。
(// * [@ class =“类名”])[2]
(//*[@class="android.widget.ImageView"])[2]
,
您将使用appium(如上所述)获得绝对的xpath,而您使用的//appandroid.widget.ImageView[1])[3]是图标的相对xpath。>
绝对xpath:这是从根元素到特定元素的路径。 相对xpath:是元素的参考路径或元素的特定路径。