3

我有 2 个本机应用程序(不是混合或反应本机),它们具有相同的设计,一个用于 Android(JAVA),另一个用于 IOS(OC)。现在我需要对这两个应用程序进行一些测试。我正在尝试用 Appium 来做到这一点。

Appium 提供了许多查找元素的方法。要为这两个应用程序编写测试用例,我似乎可以使用AccessibilityId. 如果我要求开发人员将相同的代码添加AccessibilityId到 android 和 ios 项目中,那么我可以使相同的测试代码适用于这两个应用程序。这是最佳实践吗?这可能会给 android 和 ios 开发团队带来很大的努力来添加AccessibilityIds

4

3 回答 3

1

是的,使用可访问性 ID 是首选方法。ID 不必跨平台匹配。

您可以在类定义中使用 FindBy 标签定义这些元素,如下所示:

@iOSFindBy(id = "send_button")
@AndroidFindBy(id = "SEND")
private MobileElement sendButton;

您的操作代码将是:

sendButton.click()

有关这些标签和相关标签的更多信息,请参阅 PageFactory 库文档

如果您的 ID 确实匹配,您可以内联执行您的操作(下面的示例),但我通常更喜欢在我的方法之外定义我的元素。

driver.findElementById("send_button");

上面的所有内容都可以使用 xpaths 以及文档中提到的其他属性来执行。

于 2017-10-19T18:24:55.813 回答
0

对于 android 应用程序,您可以使用它uiautomatorviewer来查找元素。

于 2017-10-19T08:50:25.537 回答
0

由于同一个应用程序在 2 个不同的平台上运行,因此如果您的项目有这种奢侈(意味着 ios 和 android 开发人员都在使用它),您可以拥有相同的 AccessibilityId。否则,具有不同对象存储库/功能的相同逻辑测试脚本将对您有所帮助。

于 2017-11-01T18:23:43.230 回答