如何使用 UFT 单击 'SwfObject'?
How to click 'SwfObject' using UFT?
我想点击 link [Link name is 'Settlement']
,该页面上有 link 个。
注意:对象间谍不会将 'Settlement' 识别为 link,而是将其视为资源管理器栏。当我对 'Settlement' 文本进行对象监视时,它会突出显示整个资源管理器栏,因此我无法获得 'Settlement' 特定属性。 [请参阅随附的屏幕截图。由于安全原因,我无法上传真实的屏幕截图。
通过录制,我可以点击'Settlement'link
SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar").Click 133,598
目前,133 和 598 是 'Settlement' 的硬编码值,但将来 'Settlement' 位置可能会改变。
所以我想知道,如何在对象间谍无法识别的情况下使用 X 和 Y 坐标单击 'settlement' link 'Settlement' link 分别地?。
或者还有其他方法可以点击这些类型的对象吗?
谢谢
安卡尔
在这种情况下,我建议使用 虚拟按钮 对象。
在您的 UFT 中,转到:
工具 > 虚拟对象 > 新建虚拟对象
选择"Button"并点击"Mark Object"按钮。将出现十字光标并标记您要映射的对象。在坐标中选择您要点击的区域。
完成后,单击 "Next"。
Select 虚拟对象的父级并单击 "Next"。
为按钮命名,例如,“myButton”,并命名您想要存储虚拟对象的集合,然后单击 "Finish".
您现在可以在脚本中使用“myButton”按钮:
SwfWindow("Platform Integration Exchange").VirtualButton("myButton").Click
使用洞察对象。在我的项目中,我们正在使用 swf 应用程序。对于应用程序中的一部分,它没有被识别,尽管它是应用程序的主要部分之一。所以我们使用 Insight 对象。它工作得很好。
其他
只有单独标识为Swf对象才能使用Click方法
语法为:object.Click[X]、[Y]、[按钮]
X,Y,BUTTON 是可选的。
默认情况下,它将左键单击。
X,Y为坐标。
如果您想点击不同的按钮,请使用以下内容。
0=micLeftBtn
1=micRightBtn
2=micMiddleBtn
对于左键单击:SwfWindow("Form1").SwfObject("Object1").Click
右键单击:SwfWindow("Form1").SwfObject("Object1").Click 1,1,1
中键点击:SwfWindow("Form1").SwfObject("Object1").Click 1,1,2
我在使用 powerbuilder 应用程序时遇到了同样的问题,我使用了以下功能。我已根据您的要求进行了修改
Public 函数 CLICKTEXTINSIDEOBJECT
Dim OperatedObject
Dim X1, X2, Y1, Y2
X1=0
X2=0
Y1=0
Y2=0
'get the object
Set OperatedObject = SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar")
'get the co-ordinates of the text to be clicked
OperatedObject.GetTextLocation "Settlement",X1,Y1,X2,Y2
''Check if the Co-ordinates are assigned
if ((X1 > 0) or (Y1 > 0)) then
OperatedObject.Click (X1 + X2)/2, (Y1+Y2)/2
CLICKTEXTINSIDEOBJECT = true
Else
CLICKTEXTINSIDEOBJECT = false
End If
结束函数
下面是关于GetTextLocation对象的说明
我想点击 link [Link name is 'Settlement']
,该页面上有 link 个。
注意:对象间谍不会将 'Settlement' 识别为 link,而是将其视为资源管理器栏。当我对 'Settlement' 文本进行对象监视时,它会突出显示整个资源管理器栏,因此我无法获得 'Settlement' 特定属性。 [请参阅随附的屏幕截图。由于安全原因,我无法上传真实的屏幕截图。
通过录制,我可以点击'Settlement'link
SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar").Click 133,598
目前,133 和 598 是 'Settlement' 的硬编码值,但将来 'Settlement' 位置可能会改变。
所以我想知道,如何在对象间谍无法识别的情况下使用 X 和 Y 坐标单击 'settlement' link 'Settlement' link 分别地?。
或者还有其他方法可以点击这些类型的对象吗?
谢谢 安卡尔
在这种情况下,我建议使用 虚拟按钮 对象。
在您的 UFT 中,转到:
工具 > 虚拟对象 > 新建虚拟对象
选择"Button"并点击"Mark Object"按钮。将出现十字光标并标记您要映射的对象。在坐标中选择您要点击的区域。
完成后,单击 "Next"。
Select 虚拟对象的父级并单击 "Next"。
为按钮命名,例如,“myButton”,并命名您想要存储虚拟对象的集合,然后单击 "Finish".
您现在可以在脚本中使用“myButton”按钮:
SwfWindow("Platform Integration Exchange").VirtualButton("myButton").Click
使用洞察对象。在我的项目中,我们正在使用 swf 应用程序。对于应用程序中的一部分,它没有被识别,尽管它是应用程序的主要部分之一。所以我们使用 Insight 对象。它工作得很好。
其他
只有单独标识为Swf对象才能使用Click方法
语法为:object.Click[X]、[Y]、[按钮]
X,Y,BUTTON 是可选的。 默认情况下,它将左键单击。
X,Y为坐标。
如果您想点击不同的按钮,请使用以下内容。
0=micLeftBtn
1=micRightBtn
2=micMiddleBtn
对于左键单击:SwfWindow("Form1").SwfObject("Object1").Click
右键单击:SwfWindow("Form1").SwfObject("Object1").Click 1,1,1
中键点击:SwfWindow("Form1").SwfObject("Object1").Click 1,1,2
我在使用 powerbuilder 应用程序时遇到了同样的问题,我使用了以下功能。我已根据您的要求进行了修改
Public 函数 CLICKTEXTINSIDEOBJECT
Dim OperatedObject
Dim X1, X2, Y1, Y2
X1=0
X2=0
Y1=0
Y2=0
'get the object
Set OperatedObject = SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar")
'get the co-ordinates of the text to be clicked
OperatedObject.GetTextLocation "Settlement",X1,Y1,X2,Y2
''Check if the Co-ordinates are assigned
if ((X1 > 0) or (Y1 > 0)) then
OperatedObject.Click (X1 + X2)/2, (Y1+Y2)/2
CLICKTEXTINSIDEOBJECT = true
Else
CLICKTEXTINSIDEOBJECT = false
End If
结束函数
下面是关于GetTextLocation对象的说明