Appium寻找元素的最佳实践

时间:2017-10-19 07:30:40

标签: appium appium-ios appium-android

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

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

3 个答案:

答案 0 :(得分:1)

是的,使用辅助功能ID是首选方法。 ID不必跨平台匹配。

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

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

您的行动代码将是:

sendButton.click()

有关这些标签及相关标签的更多信息,请访问PageFactory library docs

如果你的ID匹配,你可以内联执行你的行动(下面的例子),但我通常更喜欢在我的方法之外定义我的元素。

driver.findElementById("send_button");

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

由于同一个应用程序在2个不同的平台上运行,如果您的项目具有相同的奢侈品,则可以拥有相同的AccessibilityId(意味着ios和Android开发人员都在这方面工作)。 否则,使用具有不同对象repo / capbilities的相同逻辑测试脚本将对您有所帮助。