appium - Appium查找元素的最佳实践

标签 appium appium-ios appium-android

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

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

最佳答案

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

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

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

您的操作代码将是:

sendButton.click()

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

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

driver.findElementById("send_button");

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

关于appium - Appium查找元素的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824717/

相关文章:

docker - 使用$(pwd)mac OS时Docker无效引用

c# - 从 Selenium.Webdriver 2.44 更新到 2.46 导致 NullReferenceException

iOS Visible=false,事件元素在屏幕上可见

ios - 我们可以在已经启动的 IOS 模拟器上启动 intern 脚本吗

java - ApacheHttpClient$Factory 抛出 java.lang.NoClassDefFoundError 异常

android - 如何从 APPIUM 中的脚本滚动列表

javascript - 如何在多个设备上并行运行测试?

java - 无法实例化 Android 驱动程序 appium 1.8.1

ios - Appium 无法测试 iOS 应用程序 "The URL '/' did not map to a valid resource"

android - 更改本地脚本端到端测试的端口