[英]Is it possible to disable “Display hidden-mode notification tooltip” programmatically on UFT?
我试图在我的应用程序中运行一些自动化测试,但是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通知其他机器,它重叠的菜单,我的脚本是无法选择“另存为”选项。 因此,如果无法在运行时以编程方式关闭此通知,是否有其他解决方案可以单击“另存为”按钮,即使此通知重叠也是如此?
我设法确定了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
我完全理解您的痛苦,因为我的项目还需要与IE下载栏进行交互。 通常,我使用SendKeys
处理不同项目中的下载活动。
当下载栏出现时,您可以先发送ALT+N
来将焦点设置在下载栏上,然后发送一些选项卡键以选择“ Save
,并使用某些Down Arrow
键选择“ SaveAs
。
这样,您就无需费心处理UFT通知...
样本SendKeys
代码可以轻松地进行谷歌搜索。
创建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"
这次,我确保它可以工作;)
您可以通过以下方法激活所需的浏览器,然后尝试执行“另存为”吗?
hwnd = Browser("title:=.*").GetROProperty("hwnd")
Window("hwnd:=" & hwnd).Activate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.