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网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...
随机推荐
- Oracle历史版本及oracle相关软件下载地址
网站:https://edelivery.oracle.com/ 可能需要注册个账号!!!(账号注册登录自己折腾下就好了) 下载数据库或者oracle的相关软件的话,如下 选择对应的下载即可!
- ubuntu 16.0.4安装MySQL5.7
系统版本 root@sishen:~# uname -a Linux sishen 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep 13 09:02: ...
- SQL 列拼接使用
一个产品收藏表 Collection , 把该产品被收藏的人拼接在一列中如下: SQL SERVER SELECT ProjectID, UserIDs = ','+(STUFF((SELECT ', ...
- [转]自定义ASP.NET MVC JsonResult序列化结果
本文转自:http://blog.163.com/luckcq@yeah/blog/static/17174770720121293437119/ 最近项目中前台页面使用EasyUI的jQuery插件 ...
- mysql安装及基本概念
1.mysql下载安装 在官网下载5.6版本(越老稳定性越好,现在公司一般都用5.6),选择windows,64bit .下载完解压看bin目录下是否有mysql·exe和mysqld.exe. 解压 ...
- 纯手写的css3正方体旋转效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 自定义Jquery 下拉框
(function ($){ 'use strict'; var g_id = 0; var g_open_id = []; $.fn.select3 = function () { var _id ...
- C++#pragma pack指令
微软官方文档说#pragma pack 指令的作用是为结构.联合和类成员指定 pack 对齐.的主要作用就是改变编译器的内存对齐方式,这个指令在网络报文的处理中有着重要的作用,#pragma pack ...
- vgg16原始的protocol
# Enter your network definition here. # Use Shift+Enter to update the visualization.name: "VGG_ ...
- git 设置ss代理
git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https:// ...