桌面自动化-SuperPatrick工具使用初探

推荐一个可以用于辅助Selenium自动化的桌面自动化工具-SuperPatrick,经过测试使用过后,效果整体来说还不错,貌似也有一些问题,后文会简单说明一下;

官方网址:http://www.autotestops.com/

官方SDK链接:http://www.autotestops.com/index/superpatrick.html

SuperPatrick工具整体是使用C++开发实现的,而且可以跨语言开发(调用Dll,:)),元素定位、查找的速度应该是很快的,但有部分方法找到元素后作用到桌面点击并不是很快,感觉可能是开发者应该是在执行过程中增加了延时,具体哪些有延时哪些无延迟后续会说;

SuperPatrick还提供了桌面的定位器,而且使用这个定位器定位到的控件属性,可以跨语言的开发,这个还是挺亮眼的,经过测试了一下,桌面的大部分控件都能定位的到,一些厂商自己扩展封装的桌面控件有些定位不到;有点儿像AutoIT但是整体来说比AutoIT要准一些,也快一些;

SuperPatrick的findElement的点击事件就需要使用这个定位器来提供定位数据进行开发,如何使用这里就不多做介绍了,可以去这两篇文章查看,一个是老版的定位器说明,一个是新增图像识别的定位器说明:

http://www.autotestops.com/index/xq/cid/28/id/23.html

http://www.autotestops.com/index/xq/cid/28/id/41.html

然后通过浏览SuperPatrick的接口文档,发现目前提供了如下的几个使用方法,详情参数使用方法可以去官网查看;

1.发送字符

void sendKeys(char* pKeysString);

2.快捷键

void sendShortCutKeys (char* pKeysString)

3.查找桌面元素,默认会点击(左键)

bool findElement(char* pStrId, char *pStrName, char *pStrClassName, char* pStrControleType)

4.全屏图像识别,默认点击一次(左键)

bool  findImage(char *strPartImage)

5.相对坐标图像识别,默认点击一次(左键)

bool  findStaticImage(char *strPartImage, int left, int top, int right, int bottom)

6.基于窗口句柄的图像识别点击,默认点击一次(左键)

bool  findImageByHwnd(char *strClass, char *strTitle, char *strPartImage)

当前只有着六个方法提供,结合上面说的部分点击事件有延时,以上的点击事件方法中,只有findStaticImage这个方法是没有点击延时的,可以做到类似于双击的连续点击,给我感觉很可能是忘了加上延时了,漏了一个;

这里简单说明一下,最后的findStaticImage跟findImageByHwnd方法,发现了一个比较奇怪的情况,就是图像查找不到的情况,应当返回false,但是一直都是返回true,随后特意的测试了一下,貌似目前是这个情况,findImage的true以及false的返回情况是正常的,这两个暂时貌似一直是true;

话不多说,上个官网上不使用图像识别的例子看看吧,代码如下:

import com.sun.jna.Library;

import com.sun.jna.Native;

public class SuperPatrickTest {

public interface SuperPatrickLibrary extends Library {      
    void findElement(String pStrId, String pStrName, String pStrClassName, String controlType);       
    void sendKeys(String pKeysString);       
    void sendShortCutKeys(String pKeysString);  
 }


public static void main(String[] args) throws InterruptedException {

   System.setProperty("jna.encoding","GBK");

   String dllPath = "C:/1/SuperPatrickLibrary.dll";

   SuperPatrickLibrary superpatrick = (SuperPatrickLibrary) Native.loadLibrary(dllPath, SuperPatrickLibrary.class);

   superpatrick.findElement("307","显示桌面","","Button");

   superpatrick.sendShortCutKeys("{WIN}r");

   Thread.sleep(2000);

   superpatrick.sendKeys("notepad");

   superpatrick.sendShortCutKeys("{Return}");

   Thread.sleep(500);

   superpatrick.sendKeys("欢迎使用来到AutoTestOps测试开发专业网站!!!");

   Thread.sleep(500);

   superpatrick.findElement("","文件(F)","","MenuItem");

   superpatrick.findElement("3","保存(S)    Ctrl+S","","MenuItem");

   Thread.sleep(500);

   superpatrick.sendKeys("test.txt");

   superpatrick.findElement("1","","Button","Button");

   superpatrick.findElement("CommandButton_6","是(Y)","CCPushButton","Button");

   superpatrick.findElement("","关闭","","Button");

    }
}

代码的执行效果这里我就引用一下官网的实际操作动图,如下

super(2).gif

注:其余语言的具体代码可以http://www.autotestops.com/index/alist/pid/10/cid/28.html上面查看,这里只做一下Java版本解析;

这段代码主要完成的事情流程如下:

1.点击电脑屏幕右下角按钮-显示桌面

superpatrick.findElement("307","显示桌面","","Button");

2.win键+R键-弹出“运行”

superpatrick.sendShortCutKeys("{WIN}r");

3.输入notepad

superpatrick.sendKeys("notepad");

4.键入“回车键”,这样就是在命令行打开记事本

superpatrick.sendShortCutKeys("{Return}");

5.在记事本中输入“欢迎使用来到AutoTestOps测试开发专业网站!!!”

superpatrick.sendKeys("欢迎使用来到AutoTestOps测试开发专业网站!!!");

6.点击记事本中“文件(F)”按钮

superpatrick.findElement("","文件(F)","","MenuItem");

7.点击“文件(F)”菜单中的“保存(S)”按钮

superpatrick.findElement("3","保存(S)    Ctrl+S","","MenuItem");

8.当前焦点已经停留在了文件名的输入处,输入文件名称“test.txt”

superpatrick.sendKeys("test.txt");

9.点击“保存”按钮

superpatrick.findElement("1","","Button","Button");

10.貌似是由于文件重名,这里加了一个点击“是”的按钮

superpatrick.findElement("CommandButton_6","是(Y)","CCPushButton","Button");

初次试用,就先到这里吧,后续的图像识别的例子说明,后续琢磨琢磨再;

AUTOSAR(AUTomotive Open System ARchitecture)是一种用于汽车电子系统开发的标准化架构。EB tresos是一个用于AUTOSAR的开发工具,包含多个模块用于系统配置、运行时间环境和工具链的管理。 EB tresos具有强大的配置管理功能。用户可以在该工具中定义ECU(电控单元)的软硬件组成以及它们之间的通信。用户可以定义和配置ARXML文件,其中包含了ECU的所有配置信息。此外,EB tresos还提供了可视化的界面,使用户可以直观地添加、修改和删除ECU组件以及ECU之间的连接。 EB tresos还提供了强大的运行时间环境管理功能。用户可以配置ECU的运行时间环境和调度策略。EB tresos支持多核处理器,可以根据任务的优先级和执行时间要求进行任务调度。用户可以定义任务、事件和资源,并将它们映射到不同的核心或处理器。EB tresos还支持多任务管理和任务优先级的管理。 EB tresos还提供了一套完整的工具链,用于AUTOSAR代码的生成、编译和调试。用户可以在EB tresos中定义和配置AUTOSAR构件,并通过该工具链生成可执行代码。生成的代码遵循AUTOSAR标准,可以与其他AUTOSAR平台兼容。 综上所述,EB tresos是一个功能强大的AUTOSAR开发工具,提供了全面的配置管理、运行时间环境管理和工具链支持。它能够帮助开发人员更容易地开发和管理AUTOSAR系统,并提高系统的可靠性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值