我无法访问测试用例中的对象。 该对象是一个Tab,附加到我的应用程序中的(Sub)窗口。 在测试用例之后,Tab和附加选项卡的窗口是由对象间谍发现的,但是当测试用例运行时,出现以下错误。
找不到“[ActiveX]”对象的父“[Window]”(类Window)。验证父属性是否与应用程序中当前显示的对象匹配。
我访问该对象:
//current date
var cd = moment().format("DD-MM-YYYY");
//5 days into the future
var nd = moment(cd, "DD-MM-YYYY").add(5, 'days').format('DD-MM-YYYY');
//get all dates from today to 5 days into the future
console.log("start",cd);
console.log("end",nd);
var getDates = function(startDate, endDate) {
var dates = [],
currentDate = startDate,
addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
};
while (currentDate <= endDate) {
dates.push(currentDate);
currentDate = addDays.call(currentDate, 1);
}
return dates;
};
// Usage
var dates = getDates(cd, nd);
dates.forEach(function(date) {
console.log(date);
});
我是UFT的新手,所以我搜索了一段时间并找到了一些解决方案,但它们似乎不适合我,因为它们总是与浏览器测试相关,而不是应用程序。
答案 0 :(得分:0)
只是想一想找出问题的根本原因。
1.尝试使用顶级容器(跳过下一级容器)并检查您是否存在父级容器。
VbWindow("ApplicationWindow").ActiveX("Tab")
2.检查前后的属性。我的意思是并排验证。可能存在财产错配的可能性。
3.使用Refresh Object方法。
Window("Calculator").RefreshObject
4.从Tab对象中查询您的父级
Set objParent = VbWindow("ApplicationWindow").ActiveX("Tab").GetTOProperty("parent")
Msgbox objParent.GetROProperty("text")
Set objParent = VbWindow("ApplicationWindow").Window("SubWindow").ActiveX("Tab").GetTOProperty("parent")
Msgbox objParent.GetROProperty("text")
答案 1 :(得分:0)
警告:下面会有详细说明,您可以跳到最后一段,以获得建议的快速获胜。
当UFT从上到下识别对象时,您的对象层次结构为:
VbWindow("ApplicationWindow").Window("SubWindow").ActiveX("Tab")
UFT说:
找不到“[ActiveX]”对象的父“[Window]”(类Window)。
这意味着ID 已找到VbWindow("ApplicationWindow")
但无法找到Window("SubWindow")
。尝试突出显示VbWindow
以确保UFT识别您期望的对象。然后使用对象间谍检查您认为UFT应该找到的窗口。然后将对象存储库中的属性与您看到的窗口的属性进行比较,并找出这些描述的不同之处。
作为一种快捷方式,您可以尝试使用Maintenance Run Mode,它应该为您执行这些步骤,并建议一种方法来修复测试。