TestComplete在运行时找不到WinForms对象

9w11ddsr  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(155)

我有一个用WinForms编写的应用程序,它只包含一个TextBox。使用TestComplete spy,我可以发现TextBox及其属性,但在运行时,与所有其他控件相比,这个控件无法通过其名称或任何其他属性发现。为什么会出现这种情况?我该如何修复它(无论是在应用程序端还是在测试端)?
控件的定义如下:

this.myTxtBx.BackColor = System.Drawing.SystemColors.InactiveBorder;
this.myTxtBx.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.myTxtBx.Location = new System.Drawing.Point(74, 25);
this.myTxtBx.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.myTxtBx.Name = "myTxtBox";
this.myTxtBx.Size = new System.Drawing.Size(91, 20);
this.myTxtBx.TabIndex = 1;
this.myTxtBx.TextChanged += new 
System.EventHandler(this.myTxtBox_TextChanged);
4ioopgfo

4ioopgfo1#

您需要在运行时使用ObjectMapperMap对象,给予它一个别名并在脚本中使用它。
(TC有自己的winapp驱动程序协议,读取屏幕非常像所有主要浏览器都支持的W3Cs webdriver,使自动化成为可能)。
下面是一个使用WIX的js-function,它查找对象Map表单并输入值(您的别名可能类似于:Aliases.YourApp.myTxtBx.TextChanged):

function policeIdCheck() {
  var nomatch = "GC0000531";    
  var idnumform = Aliases.LraClient.ContentControl.ActionInfoContainerClearView.ContentControl.ActionInfoContainer.ItemsControl.IDDocNumberForm;
  if(idnumform.Exists) {      
    Log.Message("IDPolice Check");      
    idnumform.Keys(nomatch);
  }
}

相关问题