首页 > 解决方案 > Android 上的 Appium : 断言对象属性 (focused, enabled, ...)

问题描述

我正在尝试使用Appium对 Android 应用程序进行自动化测试,并想写一个关于特定对象当前状态的断言。

例如,假设我有一个MobileElement实例,并且我想断言该元素当前处于焦点位置。

我尝试使用getAttribute

mobileElement.getAttribute("focus")

但是这个调用会引发org.openqa.selenium.UnsupportedCommandException异常。(可能是因为 mobileElement 是一个AndroidElement

是否可以使用 Appium/JsonWireProtocol 检索 AndroidElement 的状态/属性/属性,或者是否有实现它的扩展?

标签: javaautomated-testsappiumappium-android

解决方案


您可以获取活动元素并将其Id与您之前找到的元素进行比较,如果 Id 相同 - 这意味着您找到的元素是活动元素。

示例代码:

MobileElement someElement = driver.findElement(By.xpath("//"));
MobileElement currentElement = (MobileElement) driver.switchTo().activeElement();

if (someElement.getId().equals(currentElement.getId())) {
    System.out.println("someElement is the current one");
}

您可能还对SeeTest Appium Extension感兴趣,它在 Appium之上提供了额外的元素命令


推荐阅读