Reg: wdio iOS 和 Android 本机应用程序之间的公共定位器,使用 ReactNative 开发(除了 AccessibilityID)

Reg: wdio Common locators between iOS and Android native app, developed using ReactNative (Apart from AccessibilityID)

Reg: wdio iOS 和 Android 本机应用程序之间的通用定位器,使用 ReactNative 开发(除了 AccessibilityID)

你好, 我们正在使用 WebdriverIO+Appium 为 ReactNative App(iOS & Android 组合)开发测试自动化框架。 没有 webview,它是纯 ReactNative iOS & Android app

  1. 在定位器策略方面,iOS 和 Android 之间是否有通用的 webdriverIO 定位器(除了 Accessbility ID)? 参考文献:WebdriverIO docs

  2. 另外,我们正处于框架开发的初级阶段;我们正在探索为 IOS 和 Android 提供一个页面对象的可能性。 a) 是否可能或我们需要有单独的页面对象? b) 或者有没有办法获得 Android / iOS 上下文并基于上下文有不同的定位器策略,其中通用定位器策略(辅助功能 ID)不可行。

  3. 如何使用 webdriverIO 的 browser$$$ 获取当前应用程序类型?

的确,基于 Appium 的标准移动 XPath 构造是可能的。

let elem = driver.element("//XCUIElementTypeTextField[@name=\"Username\"]");
element.click();

此外,根据 webdriverIO 文档,我们应该能够找到如下平台类型:

    // Note: `driver` is the equivalent to the `browser` object but semantically more correct
// you can choose which global variable you want to use
console.log(driver.isMobile); // outputs: true
console.log(driver.isIOS); // outputs: true
console.log(driver.isAndroid); // outputs: false

link: WDIO official Reference