关于 LDTP 操纵 windows 控件。
LDTP doc:
对于 web 自动化,我们用 Selenium, 但是对于 windows 控件,我们可以使用 LDTP。
首先,需要引用的 jar 包。
commons-codec-1.6.jar
commons-logging-1.1.2.jar
LDTP.jar
ws-commons-util-1.0.2.jar
xmlrpc-client-3.1.3.jar
xmlrpc-common-3.1.3.jar
上面第一个是安装 vmware 的 LDTP。
(对,java调用pywinauto时,需要依赖jep这个桥梁来把java的命令变成python端的,jep就是负责传递命令的)
由于 CobraWinLDTP.exe 是 server 端,所以先需要在命令行中启动 CobraWinLDTP.exe。
然后看代码:
import com.cobra.ldtp.Ldtp;
public class TestLdtp {
public static void main(String[] args) {
Ldtp ldtp = new Ldtp("abc");
String[] wins = ldtp.getWindowList();
for (String win : wins)
{
System.out.println(win);
}
}
}
====打印结果====
frmEclipse SDK
frm?????? - ??? - Mozilla Firefox
frmNew Tab
frmWeChat
frmD:\EclipseSpaceNew\LdtpTestNew\lib
frmC:\Program Files (x86)\VMware\CobraWinLDTP
frmAdministrator: Command Prompt - CobraWinLDTP.exe
frmUntitled - Paint
lst0
paneProgram Manager
上面代码中的 "abc" 是随便一个名字。这段代码可以打印出所有的 frame。然后你找到你需要的,就可以继续操作了。
下面是打开 notepad 后一些操作的代码
import com.cobra.ldtp.Ldtp;
public class TestLdtp {
public static void main(String[] args) {
String winStr = "frmUntitled - Notepad"; //Open Notepad first please
Ldtp ldtp = new Ldtp(winStr);
String[] wins = ldtp.getWindowList(); //Print all windows
for (String win : wins)
{
System.out.println(win);
}
ldtp.activateWindow(winStr);
System.out.println("=================");
String[] objects = ldtp.getObjectList(); //Print all objects
for (String ob : objects)
{
System.out.println(ob);
}
// ldtp.click("mnuView"); //This can click the View menu
ldtp.selectMenuItem("View;Status Bar"); //Click View > Status Bar
ldtp.appendText("txtTextEditor", "hello allen");
}
}
frmEclipse SDK
frmUntitled - Notepad
frm?????? - ??? - Mozilla Firefox
frmNew Tab
frmslc12dkq-16-2012-OBIEEServer - Remote Desktop Connection Manager v2.2
frmD:\sw\UIAVerify2.0_x86
frmNow Playing
frmAdministrator: Command Prompt - CobraWinLDTP.exe
frmD:\00????
pane1
pane2
paneChatContactMenu
lst0
paneProgram Manager
=================
txtTextEditor
uknVertical
btnLineup
btnLinedown
uknHorizontal
btnColumnleft
btnColumnright
ukn2
ukn3
lbl0
lblLn1,Col1
ukn4
mnuSystem
mnuSystem1
btnMinimize
btnMaximize
btnClose
mnuApplication
mnuFile
mnuEdit
mnuFormat
mnuView
mnuHelp
关于 LDTP 操纵 windows 控件。的更多相关文章
- 在web中使用windows控件,实现摄像头功能
最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,A ...
- 在Web中使用Windows控件
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 将Net控件转化为ActiveX控件 1GUID 2实现IObjectSafety接口 3程序集设定 制作安装程序 Web集 ...
- 向ArcGIS的ToolBarControl中添加任意的windows控件的方法
概要:在使用ArcEngine开发中,给ToolbarControl添加按钮形式的命令项相信大家都很熟悉了,因为网上的例子很多.但这种使用click调用功能的方式只能满足大部分用户在体验方面的需求,除 ...
- ArcGIS ElementLayer上放置Windows控件
ElementLayer是ArcGIS API for Silverlight/WPF中的一种图层类型,主要用来承载Silverlight/WPF中的UIElement对象(UIElement),使用 ...
- 在Web中如何使用Windows控件(ActiveX)[转]
最近做的一个Web项目,需要在网页中播放摄像头采集的实时视频,我们已经有了播放视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Ne ...
- Delphi对象变成Windows控件的前世今生(关键是设置句柄和回调函数)goodx
----------------------------------------------------------------------第一步,准备工作:预定义一个全局Win控件变量,以及一个精简 ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署 ...
- [修正] Berlin Firemonkey Windows 控件左方显示虚线问题
说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...
- windows控件理论学习
mmp快考试了还在浪 一.对话框编辑器创建控件 1.使用new在堆上创建,系统结束时我们需要使用delete去销毁控件 2.对话框编辑器控件,程序结束,自动销毁 二.控件类的基类 CWnd类和消息映射 ...
随机推荐
- 创建全文索引----SQLserver
1.启动 Microsoft Search 服务 开始菜单-->SQL程序组-->服务管理器-->下拉筐-->Microsoft Search 服务-->启动它. 2. ...
- javascript中的数据渲染与提取
table数据 <div id="tableDiv" style="overflow-x: scroll"> <table class=&qu ...
- 免费使用Google
这里需要借助一下`梯子`,这里有教程 点击进入 如果没有谷歌浏览器,进入下载最新版谷歌浏览器,进入下载,不要移动它的安装位置,选择默认位置, 如果已经安装了谷歌浏览器,打开赛风之后,选择设置 进行安装 ...
- 基于Zabbix 3.2.6版本的Discovery
作用:用于发现某IP网段内存活并且满足一定条件的主机,发现后进行加入到zabbix server进行监控. 操作步骤: 创建[自动发现规则] 为新建的自动发现规则创建[Action] 操作步骤图文 ...
- Linux 的帐号与群组:有效与初始群组、groups, newgrp
关于群组: 有效与初始群组.groups, newgrp 认识了帐号相关的两个档案 /etc/passwd 与 /etc/shadow 之后,您或许还是会觉得奇怪, 那么群组的设定档在哪里?还有,在 ...
- Redis持久化(转载)
原文地址:http://www.jianshu.com/p/2f14bc570563?from=jiantop.com 数据持久化 Redis提供了将数据定期自动持久化至硬盘的能力,包括RDB和AOF ...
- docker compose无法解析正确的版本
docker compose无法解析正确的版本.如果你使用了一个左双引号,而不是正常的双引号,docker compose将解析版本为“2”,而不是2.应该改为: version: "2&q ...
- 【HDU6635】Nonsense Time
题目大意:给定一个长度为 N 的序列,开始时所有的位置都不可用,每经过一个时间单位,都会有一个位置被激活.现给定激活顺序的序列,求每次激活之后全局的最长上升子序列的长度,保证数据随机. 题解: 引理: ...
- 【Linux学习一】命令行CLI、BASH的基本操作
●操作系统的基本结构 操作系统的基本结构通过Kernel(内核)和Shell(壳)构成.常见的Shell分为GUI和CLI GUI 图形方面的shell ------〉windows .mac osC ...
- jsp九大内置对象及四个作用域【转】
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...