【发布时间】:2019-06-02 22:56:16
【问题描述】:
尝试自动化 Android 应用的测试。但是,这些元素没有附加任何 ID,只有 xpaths。这些xpaths 是动态的,可以根据屏幕大小和屏幕上的元素位置而变化。
我尝试使用 contains() 函数,但在某些情况下没有共同的提名者。这似乎也不是最可靠的方法。
例子:
/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android。 support.v4.widget.DrawerLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view .ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup[4]
改成
/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android。 support.v4.widget.DrawerLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view .ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]
在屏幕上向下滚动时。
最好和最可靠的解决方案是什么?相同的测试脚本应该在具有不同屏幕尺寸的多个设备上运行。
是否甚至建议在 Appium 中使用 xpath,或者我应该去找开发人员并要求每个元素的唯一 ID?
【问题讨论】:
-
不推荐在 Appium 中使用 Xpath,最好使用唯一 ID,如果可用的话!!在联系开发者获取 ID 之前,您可以尝试 Appium Desktop。