我有带代码的ODT.Class Action

function SetValue(text){
HowToGetObject? .Keys(text + "[Enter]")
}


而且ODT.Data.CustomerName元素具有Actions类的类型,因此我可以使用SetValue方法
它还具有GetObject方法,该方法允许我获取对象:

function GetObject(){
return NameMapping.Sys.Orders.OrderForm.Group.Customer
}


以下代码与系统SetText()方法一起使用

ODT.Data.CustomerNameTextField.GetObject().SetText("Text")


我需要以某种方式在我的SetValue(text)方法中获取对象引用才能进行以下操作

ODT.Data.CustomerNameTextField.GetObject().SetValue("Text")


我对系统SetText(string)方法感兴趣吗?它是如何工作的?

会很高兴有任何帮助。
预先感谢,丹尼斯

最佳答案

最简单的方法是在SetValue方法中获取对象:

function SetValue(text){
  This.GetObject().Keys(text + "[Enter]")
}


可以将标准SetText方法应用于可以具有文本值的编辑器,并且只需以编程方式将文本放入这些编辑器即可。

顺便说一句,据我所知,ODT功能将很快从TestComplete中完全删除。有关详细信息,请参见Object-Driven Testing。这是一个示例,演示如何在不使用ODT功能的情况下使用OOP方法:

function customClass(newObjName)
{
  this.objName = newObjName;
}

customClass.prototype.getObject = function()
{
  return eval(this.objName);
}

customClass.prototype.setValue = function(text)
{
  this.getObject().Keys(text + "[Enter]");
}

function Test()
{
  var obj = new customClass('Sys.Process("notepad").Window("Notepad").Window("Edit")');
  obj.setValue("Test");
}

09-12 13:41