繁体   English   中英

是否可以通过编程在UFT上禁用“显示隐藏模式通知工具提示”?

[英]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计算机上运行它。

笔记:

  1. 这将关闭控制该工具提示的标志,因此下次启动Remote Agent时将读取它并且不再显示工具提示。
  2. 第三行将终止UFT的用于GUI测试的远程代理,该代理负责UFT与ALM客户端之间的通信,这将导致ALM的自动运行器出现错误(RPC服务器不可用)...只需忽略它即可。 我们需要杀死它,以便下次尝试从ALM运行测试时将其重新启动(如上所述,将读取工具提示的新值)

编辑:

我刚刚发现了一些有趣的东西:该标志实际上保存在两个位置:

  1. mic.ini
  2. RemoteAgentGUISettings.xml

但实际上使更改生效的一个是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM