Appium 查找元素的最佳实践
Best practice for Appium to find element
我有 2 个本机应用程序(不是 hybrid 或 react native),它们共享相同的设计,一个用于 Android(JAVA),另一个用于 IOS(OC ).现在我需要对这两个应用程序进行一些测试。我正在尝试使用 Appium 来做到这一点。
Appium 提供了很多方法来查找元素。要为这两个应用程序编写测试用例,似乎我可以使用 AccessibilityId
。如果我要求开发人员将相同的 AccessibilityId
添加到 android 和 ios 项目,那么我可以使相同的测试代码适用于这两个应用程序。这是最佳做法吗?这可能会给 android 和 ios 开发团队带来很多努力来添加 AccessibilityId
s
对于 android 应用程序,您可以使用 uiautomatorviewer
来查找元素。
是的,使用辅助功能 ID 是首选方法。 ID 无需跨平台匹配。
您可以在 class 定义中使用 FindBy 标签定义这些元素,如下所示:
@iOSFindBy(id = "send_button")
@AndroidFindBy(id = "SEND")
private MobileElement sendButton;
您的操作代码将是:
sendButton.click()
有关这些标签和相关标签的更多信息,请访问 PageFactory library docs。
如果您的 ID 确实匹配,您可以内联执行您的操作(下面的示例),但我通常更喜欢在我的方法之外定义我的元素。
driver.findElementById("send_button");
以上所有内容都可以使用 xpath 以及文档中提到的其他属性来执行。
由于同一个应用程序在 2 个不同的平台上运行,如果您的项目拥有相同的 AccessibilityId(意味着 ios 和 android 开发人员都致力于此),您可以拥有相同的 AccessibilityId。
否则,具有不同对象 repo/capbilities 的相同逻辑测试脚本会对您有所帮助。
我有 2 个本机应用程序(不是 hybrid 或 react native),它们共享相同的设计,一个用于 Android(JAVA),另一个用于 IOS(OC ).现在我需要对这两个应用程序进行一些测试。我正在尝试使用 Appium 来做到这一点。
Appium 提供了很多方法来查找元素。要为这两个应用程序编写测试用例,似乎我可以使用 AccessibilityId
。如果我要求开发人员将相同的 AccessibilityId
添加到 android 和 ios 项目,那么我可以使相同的测试代码适用于这两个应用程序。这是最佳做法吗?这可能会给 android 和 ios 开发团队带来很多努力来添加 AccessibilityId
s
对于 android 应用程序,您可以使用 uiautomatorviewer
来查找元素。
是的,使用辅助功能 ID 是首选方法。 ID 无需跨平台匹配。
您可以在 class 定义中使用 FindBy 标签定义这些元素,如下所示:
@iOSFindBy(id = "send_button")
@AndroidFindBy(id = "SEND")
private MobileElement sendButton;
您的操作代码将是:
sendButton.click()
有关这些标签和相关标签的更多信息,请访问 PageFactory library docs。
如果您的 ID 确实匹配,您可以内联执行您的操作(下面的示例),但我通常更喜欢在我的方法之外定义我的元素。
driver.findElementById("send_button");
以上所有内容都可以使用 xpath 以及文档中提到的其他属性来执行。
由于同一个应用程序在 2 个不同的平台上运行,如果您的项目拥有相同的 AccessibilityId(意味着 ios 和 android 开发人员都致力于此),您可以拥有相同的 AccessibilityId。 否则,具有不同对象 repo/capbilities 的相同逻辑测试脚本会对您有所帮助。