原创 - 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自动化公用方法的更多相关文章

  1. DbHelperSQL 判断数据库表结构公用方法

    #region 公用方法        /// <summary>        /// 判断是否存在某表的某个字段        /// </summary>        ...

  2. util包就是用来放一些公用方法和数据结构的

    util包就是用来放一些公用方法和数据结构的

  3. Python项目开发公用方法--excel生成方法

    在实际开发中,我们有时会遇到数据导出的需求.一般的,导出的文件格式为Excel形式. 那么,excel的生成就适合抽离出一个独立的公用方法来实现: def generate_excel(excel_n ...

  4. axios源码入口以及公用方法

    axios学习笔记(公用方法) 源码地址 找到入口文件 axios/lib/axios.js var utils = require('./utils'); var bind = require('. ...

  5. Objective-C运行时编程 - 实现自动化description方法的思路及代码示例

    发布自米高 | Michael - 博客园,源地址:http://www.cnblogs.com/michaellfx/p/4232205.html,转载请注明. 本文结构 基础实现 性能优化 参考 ...

  6. jsonpath读取json数据格式公用方法!!!

    import java.util.LinkedHashMap; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Pred ...

  7. 「小程序JAVA实战」 小程序抽离公用方法进行模块化(12)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-12/ 小程序的模块化,把砖磊成一个墩子,用的时候把整个墩子移走.js更好的调用,应用更加公用化.源 ...

  8. Android App性能自动化评测方法

    前言 App运行在设备上的性能表现也是质量保障的一个重要环节.因此,当我们确保了基本功能的准确之后,还需要有一定的方法评测App在不同设备上的性能表现.本文将从性能指标,评测方法,自动化体系建设等三个 ...

  9. Web自动化定位方法以及常用便捷操作

    很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...

随机推荐

  1. Python+selenium定位不到元素的问题及解决方案

    在操作过程中主要遇到两种阻塞的问题,总结如下: 1.页面中有iframe,定位元素时,需要用switch_to.frame()转换到元素所在的frame上再去定位 2.遇到一种新情况,有些按钮在htm ...

  2. 在eclipse中配置Tomcat并将项目部署到Tomcat上

    参考:http://blog.csdn.net/yerenyuan_pku/article/details/51830104 首先在点击window窗口然后preferences 然后点击Add,选择 ...

  3. KMS算法

    解题:http://hihocoder.com/problemset/problem/1015 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时 ...

  4. jdk1.8新日期时间类(DateTime、LocalDateTime)demo代码

    //获取当前时间 LocalDateTime d0 = LocalDateTime.now(); System.out.println(DataConvertUtil.localDateTimeToS ...

  5. iOS 应用程序内部国际化,不跟随系统语言

    前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案. 一.总则: 应用内部语言 ...

  6. 如何正确理解和使用 Activity的4种启动模式

    关于Activity启动模式的文章已经很多,但有的文章写得过于简单,有的则过于注重细节,本文想取一个折中,只关注最重要和最常用的概念,原理和使用方法,便于读者正确应用. Activity的启动模式有4 ...

  7. IOS文件下载

    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, ...

  8. Halcon学习笔记1

    转:https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...

  9. Oracle————存储过程与函数

    存储过程存储过程参数模式包括IN.OUT. IN OUT. IN(默认参数模式):表示当存储过程别调用时,实参值被传递给形参:形参起变量作用,只能读该参数,而不能修改该参数.IN模式参数可以是变量或表 ...

  10. vueshengmingzhouqi

    首先,每个Vue实例在被创建之前都要经过一系列的初始化过程,这个过程就是vue的生命周期.首先看一张图吧~这是官方文档上的图片相信大家一定都会很熟悉: 可以看到在vue一整个的生命周期中会有很多钩子函 ...