名称映射桌面应用程序的动态对象

时间:2016-09-26 10:37:47

标签: desktop-application testcomplete

如何在桌面应用程序的TestComplete UI对象中使用名称映射?

2 个答案:

答案 0 :(得分:0)

对于动态对象,最好避免使用Namemapping,并依赖Find()import { ModalModule } from 'angular2-modal'; import { BootstrapModalModule } from 'angular2-modal/plugins/bootstrap'; @NgModule({ imports: [ ModalModule.forRoot(), BootstrapModalModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { } FindChild()等内置方法。

答案 1 :(得分:0)

我没有使用Namemapping,因为我遇到了类似的问题,我测试的桌面应用程序中的表单名称不断变化。我所做的是创建一个名为' Helper Funcs'的独立脚本。在那,我有两个功能:

function findControl(module, propertyName, propertyValue) : Object;
var
  m_process : Variant;
begin
  m_process := Sys.Process(module);  
  Result := m_process.Find(propertyName, propertyValue, 1000); 
end;

function findChildControl(parent : Object, propertyName, propertyValue) :  Object;
var 
  m_result : variant;
begin
  Result := parent.FindChild(propertyName, propertyValue, 1000);
end;

使用:

用途   HelperFuncs;

procedure Test1;
var

  frmActionForm_1 : variant;
  edNewComplex : variant;  

begin


frmActionForm_1 := findControl('Payroll', 'Caption', 'Company Address Details - Edit');

  Delay(4000);

  edNewComplex := findChildControl(frmActionForm_1, 'ObjectIdetifier', 'edNewComplex');

  Delay(4000);

  edNewComplex.Click(76, 11);

end;

在上面的例子中,frmActionForm_1是一个表单,edNewComplex是表单上的一个控件。在使测试变得有趣时,我会搜索表单的标题,即“公司地址详细信息 - 编辑”。

找到表单后,我使用findChildControl搜索表单的子组件。

对于子组件,我只使用对象的名称。我通过使用他们的对象查找工具或我记录测试并转换为脚本得到。它通常包含您在录制中与之交互的对象的所有名称。

祝你好运。

赛斯