【发布时间】:2021-11-21 03:42:47
【问题描述】:
我正在研究移动自动化,我需要在 Andorid 和 iOS 中同时运行相同的规范。但 Android 和 iOS 应用中的定位器并不相同。
我可以在 page.js 中为单个元素定义两个定位器吗?
类似于 Selenium+Appium 使用注解 AndroidFindBy 和 iOSFindBy
【问题讨论】:
标签: selenium-webdriver appium webdriver-io
我正在研究移动自动化,我需要在 Andorid 和 iOS 中同时运行相同的规范。但 Android 和 iOS 应用中的定位器并不相同。
我可以在 page.js 中为单个元素定义两个定位器吗?
类似于 Selenium+Appium 使用注解 AndroidFindBy 和 iOSFindBy
【问题讨论】:
标签: selenium-webdriver appium webdriver-io
在 WebdriverIO 中有一个选项可以做到这一点
get username() {
const selectorAndroid = 'new UiSelector().text("Cancel").className("android.widget.Button")'
const selectorIOS = 'UIATarget.localTarget().frontMostApp().mainWindow().buttons()[0]'
const selectorType = driver.isAndroid ? 'android' : 'ios'
const selector = driver.isAndroid ? selectorAndroid : selectorIOS
return $(`${selectorType}=${selector}`)
}
参考:WebdriverIO
【讨论】: