原始问题
我有这个可扩展的文件夹UIObject,我需要能够展开以显示所有子文件夹。它不能双击,因为这不会扩展文件夹。我从这个文档中看到https://admhelp.microfocus.com/leanft/en/14.02/NetSDKReference/HP.LFT.SDK~HP.LFT.SDK.Java.ITreeView.html以及其他一些有ITreeView和ITreeViewNode概念的人。
如何扩展此元素?我真的只需要在代码中使用一些示例来说明我们如何获取对象,将其作为ITreeView和ITreeView节点进行篡改并进行扩展。
结果
即使它不是最佳解决方案,也可以使用下面建议的解决方法来实现这一点,这是实现这一目标的方法
public void ExpandFolder(int index)
{
IUiObject folder = ViewPage.FolderExplorer.Describe<IUiObject>(new UiObjectDescription
{
ObjectName = "TreeViewItem",
Index = (uint)index
});
var expandButton = folder.AbsoluteLocation;
expandButton.X = expandButton.X + 2;
expandButton.Y = expandButton.Y + 4;
Mouse.Click(expandButton);
GeneralUtilities.Sleep(1);
}
在这种情况下,元素左侧有一个小的下拉箭头。我无法识别,所以我确定了文件夹并操纵了点击。如果有人偶然发现并且知道使用LeanFT更直接的方法,我非常希望看到一个例子。如果没有,你在这里寻求帮助 - 我希望这对你有所帮助!
答案 0 :(得分:2)
为了Expand
和Collapse
Java ITreeView
,以下是这些步骤:
描述ITreeView
:
ITreeView treeView = Desktop.Describe<IWindow>(new WindowDescription())
.Describe<ITreeView>(new TreeViewDescription()
{
AttachedText = "Etc"
});
获取其中一个节点:
ITreeViewNode treeViewNode = treeView.GetNode("someNode");
展开或折叠它:
treeViewNode.Expand(); treeViewNode.Collapse();
唯一可扩展的对象是ITreeViewNode
(也就是说,这是具有.Expand
方法的对象),获取节点的唯一方法是通过ITreeView
,如上所示。
您想要UIObject
(我怀疑这是识别出的对象识别中心,对吗?) 作为ITreeView
,所以您可以在其上拨打Expand
和Collapse
吗?
这是不可能的。
UIObject
,在Web中它是WebElement
等。UIObject
)并在流程中再添加一个识别属性ITreeView
案例中,很可能是UIObject
NativeClass
设置为"javax.swing.JTree"
如果对象识别中心没有将可扩展对象标识为ITreeView
,那是因为它不是。
如果您的目标只是展开,并手动双击作品,那么您可以:
UIObject
; 相对于UIObject
的左上角像素,计算手动双击的点的坐标。 (E.G. 5像素向下,5向右)
您可以对其进行近似,尝试和错误,或使用可以提供帮助的工具。
使用HP.LFT.SDK.Mouse
课程双击确切位置:
var loc = theUiButton.AbsoluteLocation;
var p = new System.Drawing.Point(loc.X + 5, loc.Y + 5);
Mouse.DoubleClick(p, MouseButton.Left);
它现在无法正常工作的原因是因为.DoubleClick
默认情况下会在UIObject
的中心执行双击,而我有预感而不是可扩展对象的位置 - 因此您需要提供微调参数。