TestComplete免费版
在测试中,您可以使用光学字符识别(OCR)引擎通过其文本内容来标识经过测试的UI元素。但是,您可能会遇到这样的情况,您需要在UI元素上模拟用户操作,该UI元素没有任何可用来识别它的文本内容。例如,申请表上的空白文本框或备注字段。
在这种情况下,您可以通过其旁边的文本来标识此类UI元素。例如,您可以通过标签来标识文本框:
为此,您需要获取经过测试的UI元素旁边的文本块,指定目标屏幕区域并在其上模拟用户操作。
在关键字测试中
1、将OCR操作操作添加到测试中。
2、选择包含所需的UI元素的屏幕对象或屏幕区域。确保选定的对象或区域还包括一个文本片段,您将通过该文本片段标识UI元素。TestComplete将识别所选控件或区域中的所有文本。
3、选择一个文本片段:
4、选择要在您测试的UI元素上模拟的操作:
- 
ClickNextTo ——模拟点击(对于桌面和Web应用程序)。
 - 
TouchNextTo ——模拟触摸(用于移动应用程序)。
 - 
SendKeys ——模拟键盘输入。
 
5、指定测试的UI元素相对于所选文本块的位置:
6、指定要模拟用户操作的区域与所选文本块的边框之间的距离:
在脚本中
1、获取包含所需的UI元素的屏幕对象或屏幕区域。确保选定的对象或区域还包括文本片段,您将通过该文本片段来标识UI元素。
2、使用该OCR.Recognize方法识别对象或屏幕区域内的文本。
3、使用Block属性或BlockByText方法获取要用来标识UI元素的文本片段。
4、要模拟用户对UI元素的操作,请调用适当的方法,并指定测试的UI元素相对于文本片段的位置以及它们之间的距离:
- 
ClickNextTo ——模拟点击(对于桌面和Web应用程序)。
 - 
TouchNextTo ——模拟触摸(用于移动应用程序)。
 - 
SendKeys ——模拟键盘输入。
 
下面的示例演示如何模拟在其标签识别的文本框中的单击,然后在文本框中键入文本:
JavaScript, JScript
function GetControlByNearbyText(){  // Recognize the text of the tested application's main window  var wnd = Sys.Process("myApp").Window("Main");  var obj = OCR.Recognize(wnd);  // Find the "Customer Name" label  var t = obj.BlockByText("Customer Name:");  // Enter "John Smith" in the text box to the right of the found label  t.ClickNextTo(toRight, 25);  t.SendKeys("John Smith", toRight, 25);  …}
Python
def GetControlByNearbyText():  # Recognize the text in the tested application  wnd = Sys.Process("myApp").Window("Main")  obj = OCR.Recognize(wnd)  # Find the "Customer Name" label  t = obj.BlockByText("Customer Name:")  # Enter the text to the text box to the right of the found label  t.ClickNextTo(toRight, 25)  t.SendKeys("John Smith", toRight, 25)
VBScript
Sub GetControlByNearbyText  ' Recognize the text of the tested application's main window  Set wnd = Sys.Process("myApp").Window("Main")  Set obj = OCR.Recognize(wnd)  ' Find the "Customer Name" label  Set t = obj.BlockByText("Customer Name:")  ' Enter "John Smith" in the text box to the right of the found label  Call t.ClickNextTo(toRight, 25)  Call t.SendKeys("John Smith", toRight, 25)  …End Sub
DelphiScript
procedure GetControlByNearbyText();var wnd, obj, t;begin  // Recognize the text of the tested application's main window  wnd := Sys.Process('myApp').Window('Main');  obj := OCR.Recognize(wnd);  // Find the 'Customer Name' label  t := obj.BlockByText('Customer Name:');  // Enter "John Smith" in the text box to the right of the found label  t.ClickNextTo(toRight, 25);  t.SendKeys('John Smith', toRight, 25);  …end;
C++Script, C#Script
function GetControlByNearbyText(){  // Recognize the text of the tested application's main window  var wnd = Sys["Process"]("myApp")["Window"]("Main");  var obj = OCR["Recognize"](wnd);  // Find the "Customer Name" label  var t = obj["BlockByText"]("Customer Name:");  // Enter "John Smith" in the text box to the right of the found label  t["ClickNextTo"](toRight, 25);  t["SendKeys"]("John Smith", toRight, 25);  …}
下面的示例演示如何模拟在移动应用程序中由其标签识别的文本框上的触摸,然后在文本框中键入文本:
JavaScript, JScript
function GetControlByNearbyText_Mobile()  {  // Recognize the text of the tested application's main window  var p = Mobile.Device("MyDevice").Process("smartbear.tctests.myapp").RootLayout("").Layout("layoutTop").WebView("webview").Page("*test*.html");  var obj = OCR.Recognize(p);  // Find the "Customer Name" label  var t = obj.BlockByText("Customer Name:");  // Enter "John Smith" in the text box to the right of the found label  t.TouchNextTo(toRight, 25);  t.SendKeys("John Smith", toRight, 25);  …}
Python
def GetControlByNearbyText_Mobile():  # Recognize the text in the tested application  p = Mobile.Device("MyDevice").Process("smartbear.tctests.myapp").RootLayout("").Layout("layoutTop").WebView("webview").Page("*test*.html")  obj = OCR.Recognize(p)  # Find the "Customer Name" label  t = obj.BlockByText("Customer Name:")  # Enter the text to the text box to the right of the found label  t.TouchNextTo(toRight, 25)  t.SendKeys("John Smith", toRight, 25)
VBScript
Sub GetControlByNearbyText_Mobile()  ' Recognize the text of the tested application's main window  Set p = Mobile.Device("MyDevice").Process("smartbear.tctests.myapp").RootLayout("").Layout("layoutTop").WebView("webview").Page("*test*.html")  Set obj = OCR.Recognize(p)  ' Find the "Customer Name" label  Set t = obj.BlockByText("Customer Name:")  ' Enter "John Smith" in the text box to the right of the found label  Call t.TouchNextTo(toRight, 25)  Call t.SendKeys("John Smith", toRight, 25)  …End Sub
DelphiScript
procedure GetControlByNearbyText_Mobile();var p, obj, t;  begin  // Recognize the text of the tested application's main window  p := Mobile.Device('MyDevice').Process('smartbear.tctests.myapp').RootLayout('').Layout('layoutTop').WebView('webview').Page('*test*.html');  obj := OCR.Recognize(p);  // Find the "Customer Name" label  t := obj.BlockByText('Customer Name:');  // Enter "John Smith" in the text box to the right of the found label  t.TouchNextTo(toRight, 25);  t.SendKeys('John Smith', toRight, 25);  …end;
C++Script, C#Script
function GetControlByNearbyText_Mobile()  {  // Recognize the text of the tested application's main window  var p = Mobile["Device"]("MyDevice")["Process"]("smartbear.tctests.myapp")["RootLayout"]("")["Layout"]("layoutTop")["WebView"]("webview")["Page"]("*test*.html");  var obj = OCR["Recognize"](p);  // Find the "Customer Name" label  var t = obj["BlockByText"]("Customer Name:");  // Enter "John Smith" in the text box to the right of the found label  t["TouchNextTo"](toRight, 25);  t["SendKeys"]("John Smith", toRight, 25);  …}
相关内容推荐:
SmartBear2019专题资源>>>
TestComplete 使用教程>>>
想要购买TestComplete正版授权,或了解更多产品信息请点击“咨询在线客服”
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!