我对TestComplete如何通过两个属性
查找对象有疑问我通过某个属性1和值1找到所有对象,然后选择那些属性2等于值2,得到6个对象
然后我按属性2和值2找到所有对象,然后选择属性1等于值1的那些对象,再次得到6个对象
然后传递给FindAll两个属性并获得零对象
var p1 = "NewActionList"
var p2 = "titleBar"
var x1 = Sys["FindAll"](["NativeSlObject.Parent.Name.OleValue"], [p1], 100)
var x2 = Sys["FindAll"](["Parent.NativeSlObject.Parent.Parent.Name.OleValue"], [p2], 100)
x1 = new VBArray(x1).toArray()
x2 = new VBArray(x2).toArray()
for (var i = 0; i < x1.length; i++)
{
if (x1[i].Parent.NativeSlObject.Parent.Parent.Name.OleValue == p2)
{
Log["Message"]("x1")
}
}
for (var i = 0; i < x2.length; i++)
{
if (x2[i].NativeSlObject.Parent.Name.OleValue == p1)
{
Log["Message"]("x2")
}
}
var x = Sys["FindAll"](["NativeSlObject.Parent.Name.OleValue", "Parent.NativeSlObject.Parent.Parent.Name.OleValue"], [p1, p2], 100)
x = new VBArray(x).toArray()
Log["Message"](x.length)
获得x1六次,x2六次,0
答案 0 :(得分:0)
FindAll正在搜索一个具有您指定的参数的对象:
ativeSlObject.Parent.Name.OleValue = p1
和
Parent.NativeSlObject.Parent.Parent.Name.OleValue = p2
对象树中是否有具有此类属性的对象?
答案 1 :(得分:0)
我认为即使有效,这种搜索也会相当缓慢。我建议您使用更简单的搜索条件在几个步骤中搜索所需的对象。
此外,您可以更轻松地使用名称映射功能及其Required Children和Extended Find功能。