在 Appium 中,很多定位方式和 Selenium 中有很多相似之处。
只是针对的属性有区别,比如我们最常用的 id 定位。 id 定位在 Selenium 中是最便捷,也是唯一性最高的定位方式。
在 Appium 中 id 唯一性相对会差一些,但是依然是最便捷的定位方式。
图中的 App,我们想操作最下方的第四个按钮,通过 UIAutomatorViewer 查看该按钮是一个 ImageView 元素,属性有 resource-id。我们就可以尝试直接用 resource-id 进行定位。
driver.find_element_by_id('com.insthub.ecmobile:id/toolbar_tabfour')
看起来代码是不是很长?等你见识到 xpath 定位,就知道这是很短的。
由于 resource-id 在 App 中并不唯一,对于临近或者相似的功能,也查看一下 id,确认是否唯一。比如这里你可以看看其他三个按钮的 id 和当前元素 id 是否一样,如果不一样,那么这个界面上一般就不会再有相同的 id 了。