首页 > 解决方案 > 在 LeanFT 中将 DynamicObjectProxy 转换为 Object[]

问题描述

我有一个 UI 组件,它是 JComboBox。我正在尝试调用返回 Object[] 数组的方法“getSelectedObjects()”

public Object[] getSelectedObjects() {
  ........
}

在自动化中,我编写了以下代码..

NativeObject obj = FruitList.getNativeObject();
com.hp.lft.sdk.internal.DynamicObjectProxy uiObj = obj.invokeMethod("getSelectedObjects", com.hp.lft.sdk.internal.DynamicObjectProxy.class, null);

如何从 uiObj 对象中获取 Object[] ?

我正在使用 LeanFT SDK 14.3.0

标签: javaautomated-testshp-uftleanft

解决方案


我也遇到了同样的问题,因为 MicroFocus 没有提供处理 NativeObjects 或 DynamicObjectProxy 的正确文档。它只是返回一个包装器对象,并且无法将其转换为任何集合类型以从中获取确切的值。经过大量研究,我找到了以下解决方案,希望对您有所帮助:

NativeObject obj = FruitList.getNativeObject();
NativeObject uiObj = obj.invokeMethod("getSelectedObjects", NativeObject.class, null);
NativeObject result = uiObj.getItem(NativeObject.class, 0);

结果变量行中提到的“0”可以替换为数组。变量结果将根据位置(如 0,1 等)从 NativeObject 类中给出值。您也可以将所有内容写在单行中,如下所示:

NativeObject result = FruitList.getNativeObject().invokeMethod("getSelectedObjects", NativeObject.class, null).getItem(NativeObject.class, 0);

推荐阅读