C#与Ranorex自动化公用方法
利用c#在Ranorex上写自动化已经有很长的一段时间了,总结发现常用的方法不外乎如下几种:
1、打开浏览器;或者app
public static void openBrowserMax(){
Report.Log(ReportLevel.Info, "Website", "Opening web site 'https://www.baidu.com' with browser 'IE' in normal mode.", new RecordItemIndex());
Host.Local.OpenBrowser("https://www.baidu.com", "Chrome", "", true, true, false, false, false);
Delay.Milliseconds();
}
2、删除以前的值,输入一个值;
//输入框中内容先删除后填写
public static void deleteAndInput(Ranorex.Adapter adapter, string item, Ranorex.Core.Repository.RepoItemInfo report)
{ Report.Log(ReportLevel.Info, "清空并输入", "在"+"【"+report+"】"+"处删除原有数据,并输入:【"+item+"】。");
adapter.Click();
//while(!adapter.Element.HasFocus) {adapter.Click("0;0"); adapter.Focus(); };
Keyboard.Press(System.Windows.Forms.Keys.End | System.Windows.Forms.Keys.Shift, Keyboard.DefaultScanCode, Keyboard.DefaultKeyPressTime, , true);
Keyboard.Press(System.Windows.Forms.Keys.Delete, Keyboard.DefaultScanCode, Keyboard.DefaultKeyPressTime, , true);
adapter.PressKeys(item);
Delay.Milliseconds(); // if(adapter.Element.GetAttributeValueText("Value")==item || adapter.Element.GetAttributeValueText("Text")==item || adapter.Element.GetAttributeValueText("InnerText")==item)
// {
// break;
// } }
3、 下拉列表框中选择或者输入一个值
//输入内容
public static void selectItem(Ranorex.Adapter adapter, string item, Ranorex.Core.Repository.RepoItemInfo report)
{
Report.Log(ReportLevel.Info, "选择下拉选项", "在"+"【"+report+"】"+"处选择"+"【"+item+"】"+"。");
if (!string.IsNullOrEmpty(item)) {
adapter.Focus();
adapter.PressKeys(item);//输入数据 Delay.Duration(, false);
}
} //输入某一选项
public static void selectList(Ranorex.Adapter adapter,string value, int length)
{
//IList<LiTag> li = repo.NewFolder.销售机会新建.ComboboxDropdown.FindDescendants<LiTag>(); //找到控件adapter的LiTag后代
IList<LiTag> li = adapter.FindDescendants<LiTag>();
foreach(LiTag l in li)
{
string text = l.InnerText;
if(text.Length>=)
{
Report.Log(ReportLevel.Info,text);
string text1 = text.Substring(,length);
if(value==text1)
{
l.Click(); //也可以换成l.selected = true; 如果有selected这个属性的话
break;
}
}
}
}
4、通过按Down按钮或则Up来再下拉列表框中选择一个值
Keyboard.Press("{Down 7}{Up 4}{Enter}");
5、点击一个按钮
adapter1.Click();
6、点击按钮直到某个控件出现为止
//等待30s知道某个控件出现
public static void waitfor30sReportExist(Ranorex.Adapter adapter1, Ranorex.Core.Repository.RepoItemInfo adapter2Info){
int count = ;
Report.Log(ReportLevel.Info,"双击"+adapter1.ToString()+",等待"+adapter2Info.ToString()+"出现");
while(!adapter2Info.Exists()){
adapter1.Click();
Delay.Milliseconds(,false);
count = count + ;
if(count >= )
{
Report.Log(ReportLevel.Failure,"在30s内没有找到控件"+adapter2Info.ToString());
break;
} }
}
7、通过xpath来找到某个控件(或判断某个控件是否存在)
Element element = Element.FromPath("/dom[@caption='******' and @page='quotation_search.html']//table[#'resultTable']/tbody/tr"); RxPath xpa = new RxPath("/dom[@caption='*****' and @page='quotation_search.html']//table[#'resultTable']/tbody/tr");
IList<Element> ils= element.Find(xpa);
Report.Info("ils.count:" + ils.Count);
8、通过坐标来点击控件
Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item '导航按钮' at 35;131.", repo.导航按钮Info, new RecordItemIndex());
repo.导航按钮.Click("35;131");
Delay.Milliseconds();
C#与Ranorex自动化公用方法的更多相关文章
- DbHelperSQL 判断数据库表结构公用方法
#region 公用方法 /// <summary> /// 判断是否存在某表的某个字段 /// </summary> ...
- util包就是用来放一些公用方法和数据结构的
util包就是用来放一些公用方法和数据结构的
- Python项目开发公用方法--excel生成方法
在实际开发中,我们有时会遇到数据导出的需求.一般的,导出的文件格式为Excel形式. 那么,excel的生成就适合抽离出一个独立的公用方法来实现: def generate_excel(excel_n ...
- axios源码入口以及公用方法
axios学习笔记(公用方法) 源码地址 找到入口文件 axios/lib/axios.js var utils = require('./utils'); var bind = require('. ...
- Objective-C运行时编程 - 实现自动化description方法的思路及代码示例
发布自米高 | Michael - 博客园,源地址:http://www.cnblogs.com/michaellfx/p/4232205.html,转载请注明. 本文结构 基础实现 性能优化 参考 ...
- jsonpath读取json数据格式公用方法!!!
import java.util.LinkedHashMap; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Pred ...
- 「小程序JAVA实战」 小程序抽离公用方法进行模块化(12)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-12/ 小程序的模块化,把砖磊成一个墩子,用的时候把整个墩子移走.js更好的调用,应用更加公用化.源 ...
- Android App性能自动化评测方法
前言 App运行在设备上的性能表现也是质量保障的一个重要环节.因此,当我们确保了基本功能的准确之后,还需要有一定的方法评测App在不同设备上的性能表现.本文将从性能指标,评测方法,自动化体系建设等三个 ...
- Web自动化定位方法以及常用便捷操作
很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...
随机推荐
- 微信小程序生成分享图片,保存到本地
1.页面 <canvas canvas-id="shareCanvas" style="width:600px;height:900px">< ...
- SqlParameter 操作 image 字段
public static void AddEmployee( string lastName, string firstName, string title, DateTime hireDate, ...
- 122 Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II
假设有一个数组,它的第 i 个元素是一个给定的股票在第 i 天的价格.设计一个算法来找到最大的利润.你可以完成尽可能多的交易(多次买卖股票).然而,你不能同时参与多个交易(你必须在再次购买前出售股票) ...
- Problem D: 勤奋的涟漪2 dp + 求导
http://www.gdutcode.sinaapp.com/problem.php?cid=1049&pid=3 dp[i][state]表示处理了前i个,然后当前状态是state的时候的 ...
- C#实现较为实用的SQLhelper
第一次写博客,想不到写什么好b( ̄▽ ̄)d ,考虑的半天决定从sqlhelper开始,sqlhelper对程序员来说就像helloworld一样,很简单却又很重要,helloworld代表着程序员萌新 ...
- RabbitMQ八:交换机类型Exchange Types--Topic介绍
前言 上一章节,我们说了两个类型,本章我们说一下其三:Topic Exchange Topic Exchange Topic Exchange – 将路由键和某模式进行匹配.此时队列需要绑定要一个模 ...
- PetStore项目总结
数据库(MySQL): account(用户表:没有外键), profile(用户侧面信息表:有两个外键:catid,username), category(宠物总分类表--鱼:没有外键), prod ...
- iOS 应用程序内部国际化,不跟随系统语言
前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案. 一.总则: 应用内部语言 ...
- idea 下maven 导入本地jar,以及导入之后 java不能引用问题
1.在当前的项目中新建立一个lib文件夹,将需要导入的jar放入其中. 2.配置pom.xml 文件 <!--导入本地jar--> <dependency> <group ...
- MongoDB最简单的入门教程之五-通过Restful API访问MongoDB
通过前面四篇的学习,我们已经在本地安装了一个MongoDB数据库,并且通过一个简单的Spring boot应用的单元测试,插入了几条记录到MongoDB中,并通过MongoDB Compass查看到了 ...