自动化测试工具Ranorex Studio(四十三)-RANOREXPATH编辑器5

代码示例

下面的代码示例将讲解如何使用Ranorex API来编写代码模块,或者是使用用户代码来扩展录制的模块。

在代码中使用对象库

使用对象库等待UI元素

建立Adapter来访问更多的属性和方法

为对象库元素建立一组Adapter

使用Validate类

强制一个测试用例失败

设置automation speed

访问测试用例和测试簇的上下文

高级代码示例

如果做基于图像的自动化

如何查找和比较图像

处理意外的对话框

在代码中使用对象库

C#

TestModule("D451F1D1-C347-4B58-939F-F6187642EB56", ModuleType.UserCode, 1)

public class UsingRepository : ITestModule

{

// Repository object to access UI elements 用来访问UI元素的对象库对象

MyFirstTestProjectRepository repo = MyFirstTestProjectRepository.Instance;

/// <summary>

/// Constructs a new instance. 创建一个新实例

/// </summary>

public UsingRepository()

{

// Do not delete -- a parameterless constructor is required! 不要删,需要无参构造器

}

void ITestModule.Run()

{

Mouse.DefaultMoveTime = 300;

Keyboard.DefaultKeyPressTime = 100;

Delay.SpeedFactor = 1.0;

// Using Ranorex.Form adapter represented by 'MyApp' 用Ranorex.Form adapter来表示MyApp

// 'MyApp' is used as a folder within the repository; MyApp是对象库中的文件夹

// the 'Self' property returns an object of type Ranorex.Form self用来返回对象

// Activates application 激活应用

repo.MyApp.Self.Activate();

// Log 'Active' state 记录状态

Report.Info(repo.MyApp.Self.Active.ToString());

// Maximize, Minimize and Restore 最大化,最小化,复原大小

repo.MyApp.Self.Maximize();

repo.MyApp.Self.Minimize();

repo.MyApp.Self.Restore();

// Closes application 关闭应用

repo.MyApp.Self.Close();

// Using Ranorex.Button adapter represented by 'ButtonAdd'

// Read and log value of 'Text' attribute

Report.Info(repo.MyApp.Buttons.ButtonAdd.Text);

// Press button 按下按钮

repo.MyApp.Buttons.ButtonAdd.Press();

// Read and log value of 'Enabled' attribute 读取并记录属性

Report.Info(repo.MyApp.Buttons.ButtonAdd.Enabled.ToString());

// Using Ranorex.RadioButton adapter

// represented by 'GenderOption'

// Select radio button 选择radio button

repo.MyApp.GenderOption.Select();

// Accessing listitems of Ranorex.List adapter

// represented by 'CategoryList'

IList<ranorex.listitem> listItems = repo.MyApp.CategoryList.Items;

foreach ( Ranorex.ListItem item in listItems )

{

Report.Info(item.Text + " is member of CategoryList");

}

// Using Ranorex.MenuItem to open 'File' menu

repo.MyApp.MenuItemFile.Select();

// Selecting sub menu item 'Connect'

repo.FileMenu.Connect.Select();

// Read and log 'Enabled' state of menu item 'Connect'

Report.Info(repo.FileMenu.Connect.Enabled.ToString());

}

}

VB.NET

Public Class UsingRepository

Implements ITestModule

' Repository object to access UI elements

Private repo As MyFirstTestProjectRepository = MyFirstTestProjectRepository.Instance

"' <summary>

"' Constructs a new instance.

"' </summary>

' Do not delete -- a parameterless constructor is required!

Public Sub New()

End Sub

"' <summary>

"' Performs the playback of actions in this module.

"' </summary>

"' <remarks>You should not call this method directly, instead pass the module

"' instance to the <see cref="TestModuleRunner.Run(ITestModule)"> method

"' that will in turn invoke this method.</see></remarks>

Private Sub ITestModule_Run() Implements ITestModule.Run

Mouse.DefaultMoveTime = 300

Keyboard.DefaultKeyPressTime = 100

Delay.SpeedFactor = 1.0

' Using Ranorex.Form adapter represented by 'MyApp'

' 'MyApp' is used as a folder within the repository;

' the 'Self' property returns a Ranorex.Form object

' Activates application

repo.MyApp.Self.Activate()

' Log 'Active' state

Report.Info(repo.MyApp.Self.Active.ToString())

' Maximize, Minimize and Restore

repo.MyApp.Self.Maximize()

repo.MyApp.Self.Minimize()

repo.MyApp.Self.Restore()

' Closes application

repo.MyApp.Self.Close()

' Using Ranorex.Button adapter represented by ButtonAdd'

' Read and log value of 'Text' attribute

Report.Info(repo.MyApp.Buttons.ButtonAdd.Text)

' Press button

repo.MyApp.Buttons.ButtonAdd.Press()

' Read and log value of 'Enabled' attribute

Report.Info(repo.MyApp.Buttons.ButtonAdd.Enabled.ToString())

' Using Ranorex.RadioButton adapter

' represented by 'GenderOption'

' Select radio button

repo.MyApp.GenderOption.[Select]()

' Accessing listitems of Ranorex.List adapter

' represented by 'CategoryList'

Dim listItems As IList(Of Ranorex.ListItem) = repo.MyApp.CategoryList.Items

For Each item As Ranorex.ListItem In listItems

Report.Info(item.Text & " is member of CategoryList")

Next

' Using Ranorex.MenuItem to open 'File' menu

repo.MyApp.MenuItemFile.[Select]()

' Selecting sub menu item 'Connect'

repo.FileMenu.Connect.[Select]()

' Read and log 'Enabled' state of menu item 'Connect'

Report.Info(repo.FileMenu.Connect.Enabled.ToString())

End Sub

End Class

相关推荐
wangl_921 小时前
Wireshark 使用指南:从入门到高级分析
网络·网络协议·tcp/ip·测试工具·wireshark·modbus
企业架构师老王1 小时前
开源还是商用?跨境电商自动运营Agent的选型对比与开发实践
人工智能·ai·开源·自动化
Gerardisite1 小时前
CRM、ERP、OA 如何连接企业微信?QiWe 提供标准化解决方案
java·python·机器人·自动化·企业微信
安大小万3 小时前
VSCode的json文件不允许注释的解决办法
ide·vscode·编辑器
Byron Loong3 小时前
【网络】Wireshark过滤器表达式的规则
网络·测试工具·wireshark
旦莫4 小时前
将AI引入到自动化测试以后我遇到了哪些问题
人工智能·测试开发·自动化·测试用例
Agent手记4 小时前
物流对账全流程自动化,落地实操与财务打通方案:基于LLM+智能体驱动的业财一体化实践
运维·人工智能·ai·自动化
汪汪大队u4 小时前
校园资源共享平台搭建与Shell自动化监控实战
运维·自动化
测试_AI_一辰4 小时前
AI产品测试框架:从官方规范反向推导测试用例
人工智能·功能测试·自动化·prompt·测试用例·ai编程
winlife_4 小时前
Unity Editor 工具不该用反射写组件字段:SerializedObject 在 4 个场景里非用不可
unity·自动化·游戏引擎