移动端元素定位与JSON数据提供者构建全解析
1. 移动端元素定位基础
移动端元素(MobileElements)的定位器通常局限于 ID、className、tagName 和 XPath。不过,在使用 XPath 查询定义定位器时,也能运用其他属性。下面以 ScratchTones 原生 iOS 移动应用为例,介绍如何定义 XPath 定位器。
当在 Appium 检查器中高亮显示 “My Scratchtones” 按钮时,详情框会显示其属性,包括名称、类型、值和标签。以下是为该元素构建的几个单属性 XPath 定位器示例:
@iOSFindBy(xpath = "//UIAButton[@name='My ScratchTones']")
protected M myScratchTones;
@iOSFindBy(xpath = "//UIAButton[@label='My ScratchTones']")
protected M myScratchTones;
@iOSFindBy(xpath = "//*[@value='1']")
protected M myScratchTones;
@iOSFindBy(xpath = "//UIATabBar[1]/UIAButton[1]")
protected M myScratchTones;
在上述定位器中,前两个结合了类名与名称、标签属性。若仅使用属性就能使定位器唯一,那么类名并非必需,如第三个示例使用通配符时就足够了。不过,第三个示例使用给定值时健壮性较差,而第四个示例则最为通用。当没有唯一属性可用时,若页面上有多个