我试图在我的应用程序中运行一些自动化测试,但是UFT隐藏模式通知工具提示位于屏幕中的对象前面,阻止我的测试运行。
我知道我可以取消选中"显示隐藏模式通知工具提示"在远程代理设置中解决此问题,并且在我执行此操作后它在我的计算机上正常工作,但这些测试在我公司的其他用户的其他计算机上执行,并且真正努力告诉他们每个人在他们的机器上更改此设置。
这是一种禁用此程序复选框的方法吗?
修改
以下是关于这对我影响的更多细节:
我正在测试Web应用程序,在我的一些测试用例中,我需要从此应用程序下载文件。我点击"另存为"在上下文菜单中,该菜单显示在浏览器底部的通知栏上。
以下是执行此类操作的代码部分:
Dim brwBottom
Set brwBottom = Browser("brw_Bottom_Save_As")
If brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Exist Then
brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Click
brwBottom.WinMenu("wm_Selector").Select "Save As"
End If
这在我的机器上工作正常,因为没有显示UFT通知,但在显示UFT通知 的其他机器中,它与菜单重叠,我的脚本无法选择&#34 ;另存为"选项。因此,如果无法在运行时以编程方式关闭此通知,是否有任何替代解决方案可以单击"另存为"按钮,即使这个通知重叠了吗?
答案 0 :(得分:2)
我设法识别UFT通知工具提示并关闭它。有了这个,我需要点击按钮前面没有更多的对象,我的脚本可以成功执行。 以下是使用的代码。我并没有将此标记为可接受的答案,因为我仍在等待我的团队接受解决方案,但这是有效的。
Dim brwBottom
Set brwBottom = Browser("brw_Bottom_Save_As")
' To close UFT Notification Tooltip, if exists
If Window("regexpwndtitle:=NotificationWindow").Exist(2) Then
If InStr(Window("regexpwndtitle:=NotificationWindow").GetROProperty("nativeclass"),"UFTRemoteAgent") > 0 Then
Window("regexpwndtitle:=NotificationWindow").Close
End If
End If
If brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Exist Then
brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Click
brwBottom.WinMenu("wm_Selector").Select "Save As"
End If
答案 1 :(得分:1)
我完全理解你的痛苦,因为我的项目还需要与IE下载栏进行交互。通常,我使用SendKeys
来处理不同项目中的下载活动。
当下载栏出现时,您可以首先发送ALT+N
以设置对下载栏的关注,然后发送一些标签键以选择Save
,并选择一些Down Arrow
键以选择{ {1}}。
通过这种方式,您不需要费心处理UFT通知......
示例SaveAs
代码可以很容易地用Google搜索。
答案 2 :(得分:1)
创建UFT GUI测试并包含以下三行:
extern.Declare micLong, "WritePrivateProfileString", "kernel32.dll", "WritePrivateProfileString", micString, micString, micString, micString
extern.WritePrivateProfileString "RemoteAgent", "ShowBallon", "0", Environment("ProductDir") + "\bin\mic.ini"
systemutil.CloseProcessByName "UFTRemoteAgent.exe"
从ALM,在所有UFT计算机上运行它。
备注:强>
修改强>
我刚发现一些有趣的东西:这个标志实际上保存在两个位置:
但实际使更改生效的是RemoteAgentGUISettings.xml(似乎他们正在从.ini文件切换到.xml ......这很有意义)。在这种情况下,代码会稍微改变一下,但想法是一样的:
filePath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%appdata%") + "\Hewlett-Packard\UFT\Persistence\Dialogs\RemoteAgentGUISettings.xml"
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.load filePath
Set nNode = xmlDoc.selectsinglenode ("//SettingsViewModel/IsShowBalloon")
nNode.text = "false"
strResult = xmldoc.save(filePath)
systemutil.CloseProcessByName "UFTRemoteAgent.exe"
这次我确定它有效;)
答案 3 :(得分:0)
是否可以使用以下选项激活所需的浏览器,然后尝试另存为
hwnd = Browser("title:=.*").GetROProperty("hwnd")
Window("hwnd:=" & hwnd).Activate