在我的脚本退出测试中的WPF应用程序之后,我经常在通知区域中找到留下的鬼应用程序图标。当我手动执行鼠标悬停时它会消失。如果此操作是自动执行的,则会抛出错误说“对象不存在“(因为TC执行悬停操作时图标消失)。 有没有更好的方法来解决这个问题?我使用TC9和jscript。
感谢您的帮助!
答案 0 :(得分:2)
您可以使用Windows API SendMessage
函数将WM_MOUSEMOVE
消息发送到通知区域对象。我从this question的答案中获取代码并将其修改为TestComplete:
// JScript
function RefreshNotificationArea()
{
var WM_MOUSEMOVE = 0x0200;
var explorer = Sys.Process("explorer");
var toolbars = [
explorer.Window("Shell_TrayWnd").Window("TrayNotifyWnd").Window("SysPager").Window("ToolbarWindow32"),
explorer.Window("NotifyIconOverflowWindow").Window("ToolbarWindow32") // toolbar with hidden icons
];
for (var i = 0; i < toolbars.length; i++)
{
var toolbar = toolbars[i];
for (var x = 0; x < toolbar.Width; x += 5)
for (var y = 0; y < toolbar.Height; y += 5)
Win32API.SendMessage(toolbar.Handle, WM_MOUSEMOVE, 0, (y << 16) + x);
}
}