public class Desktop extends TestObject implements IClickable, IKeyable
Modifier | Constructor and Description |
---|---|
|
Desktop()
创建一个桌面,以(通过 RMI)连接到默认机器上的代理(若未指定系统属性,则为
localhost )。 |
protected |
Desktop(com.borland.silktest.jtf.internal.Agent agent) |
|
Desktop(String url)
创建一个桌面,以(通过 RMI)连接到指定主机上的代理。
|
Modifier and Type | Method and Description |
---|---|
void |
attach(String executablePattern)
附加到指定位置。
|
void |
attach(String executablePattern,
String commandLinePattern)
附加到与可执行模式和命令行模式匹配的指定应用程序。
|
void |
attach(String executablePattern,
String commandLinePattern,
TechDomain... techdomains)
附加到与可执行模式和命令行模式匹配的指定应用程序。
|
void |
attach(String executablePattern,
TechDomain... techdomains)
附加到给定应用程序,尝试启用指定 Techdomain。
|
void |
click()
单击对象。
|
void |
click(int button)
单击对象。
|
void |
click(int button,
Point pos)
单击对象。
|
void |
click(int button,
Point pos,
ModifierKey modifiers)
单击对象。
|
<T> T |
createAgentDllCall(Class<T> clz)
返回执行指定 Dll 调用接口的对象,该对象会将该接口的所有调用路由到将要加载 DLL 的代理,并执行调用。
|
<T> T |
createInProcessDllCall(Class<T> clz)
返回执行指定 Dll 调用接口的对象,该对象会将该接口的所有调用路由到将要加载 DLL 的 AUT,并执行调用。
|
String |
decrypt(String toDecrypt)
解密给定的字符串。
|
void |
detachAll()
将当前所有附加的应用程序分离。
|
void |
doubleClick()
双击对象上的鼠标按钮。
|
void |
doubleClick(int button)
双击对象上的鼠标按钮。
|
void |
doubleClick(int button,
Point pos)
双击对象上的鼠标按钮。
|
void |
doubleClick(int button,
Point pos,
ModifierKey modifiers)
双击对象上的鼠标按钮。
|
String |
encrypt(String toEncrypt)
加密给定的字符串。
|
<T extends TestObject> |
executeBaseState(IBaseState baseState)
确保被测试应用程序在运行中,并准备就绪,以供测试。
|
String |
getClipboardText()
返回当前系统剪贴板上的文字
|
Desktop |
getDesktop()
返回此对象的桌面。
|
Object |
getOption(String optionName)
检索代理选项的值。
|
Object |
getOption(String optionName,
TechDomain techDomain)
检索 tech 域特定选项的值。
|
void |
logError(String message)
将错误消息和完整桌面的屏幕截图记录到执行测试期间写的 TrueLog 文件。
|
void |
logError(String message,
TruelogScreenshotMode screenshotMode)
将错误消息和屏幕截图记录到执行测试期间写的 TrueLog 文件。
|
void |
logInfo(String message)
将信息性消息记录到执行测试期间写的 TrueLog 文件。
|
void |
logInfo(String message,
TruelogScreenshotMode screenshotMode)
将信息性消息和屏幕截图记录到执行测试期间写的 TrueLog 文件。
|
void |
logWarning(String message)
将警告消息记录到执行测试期间写的 TrueLog 文件。
|
void |
logWarning(String message,
TruelogScreenshotMode screenshotMode)
将警告消息和屏幕截图记录到执行测试期间写的 TrueLog 文件。
|
void |
mouseMove()
将指针移至对象中的指定位置。
|
void |
mouseMove(Point pos)
将指针移至对象中的指定位置。
|
void |
pressKeys(String keys)
按住(不松开)一组键或鼠标按钮。
|
void |
pressKeys(String keys,
boolean ensureFocus)
按住(不松开)一组键或鼠标按钮。
|
void |
pressMouse()
按住(不松开)对象上的鼠标按钮。
|
void |
pressMouse(int button)
按住(不松开)对象上的鼠标按钮。
|
void |
pressMouse(int button,
Point pos)
按住(不松开)对象上的鼠标按钮。
|
void |
pressMouse(int button,
Point pos,
ModifierKey modifiers)
按住(不松开)对象上的鼠标按钮。
|
void |
releaseKeys(String keys)
松开一组键或鼠标按钮。
|
void |
releaseKeys(String keys,
boolean ensureFocus)
松开一组键或鼠标按钮。
|
void |
releaseMouse()
松开鼠标按钮。
|
void |
releaseMouse(int button)
松开鼠标按钮。
|
void |
releaseMouse(int button,
Point pos)
松开鼠标按钮。
|
void |
releaseMouse(int button,
Point pos,
ModifierKey modifiers)
松开鼠标按钮。
|
void |
resetAllOptions()
将代理的所有选项重置为默认值。
|
void |
setClipboardText(String text)
向系统剪贴板内写入新的文字。
|
void |
setOption(String optionName,
Object optionValue)
设置一个代理选项。
|
void |
setOption(String optionName,
Object optionValue,
TechDomain... techDomains)
为给定的 tech 域设置一个选项。
|
void |
shutdownAgent()
调用此方法可确保 Open Agent 在测试运行后停止,例如在夜间执行测试后。
|
String |
toString()
返回一个包含类名和测试对象属性的字符串。
|
boolean |
tryVerifyAsset(String verificationAsset)
执行验证资产并返回验证是否通过。
|
void |
typeKeys(String keys)
发送一组按键至对象。
|
void |
typeKeys(String keys,
int delay)
发送一组按键至对象。
|
void |
typeKeys(String keys,
int delay,
boolean ensureFocus)
发送一组按键至对象。
|
void |
typePasswordKeys(String keys)
将加密的密码输入对象,例如文本字段。
|
void |
typePasswordKeys(String keys,
int delay)
将加密的密码输入对象,例如文本字段。
|
void |
typePasswordKeys(String keys,
int delay,
boolean ensureFocus)
将加密的密码输入对象,例如文本字段。
|
void |
unloadAllDllsFromAgent()
从代理上卸载当前加载的所有 DLL。
|
<T> boolean |
unloadDllFromAgent(Class<T> dll)
将指定的 DLL 从代理上卸载。
|
void |
verifyAsset(String verificationAsset)
执行验证资产。
|
captureBitmap, captureBitmap, exists, exists, generateLocator, getChildren, getDynamicMethodList, getParent, getPropertyList, getRect, getRect, getText, getValue, highlightObject, highlightObject, highlightObject, invokeMethods, textCapture, textCapture, textClick, textClick, textClick, textClick, textClick, textClick, textExists, textExists, textExists, textExists, textExists, textRectangle, textRectangle, textRectangle, textRectangle, textRectangle, waitForChildDisappearance, waitForChildDisappearance, waitForDisappearance, waitForDisappearance, waitForObject, waitForObject, waitForProperty, waitForProperty
equals, exists, find, find, findAll, findAll, getCustomTypeName, getHandle, getLocator, getProperty, getTypeName, hashCode, imageClick, imageClick, imageClick, imageClick, imageClick, imageClick, imageClickFile, imageClickFile, imageClickFile, imageClickFile, imageClickFile, imageClickFile, imageExists, imageExists, imageExists, imageExistsFile, imageExistsFile, imageExistsFile, imageRectangle, imageRectangle, imageRectangle, imageRectangleFile, imageRectangleFile, imageRectangleFile, invoke, preventFinalLocator, setProperty
public Desktop()
localhost
)。在本地机器环境中,如果没有运行中的代理,会自动启动一个代理。resetAllOptions()
完成此操作)。agentRmiHost
系统属性实现。可通过此方法在其他机器上重新执行脚本,无需作任何更改。-DagentRmiHost=10.5.2.3
通过命令行传递,则此方法可连接到指定主机上的代理。AgentConnectionException
- 如果连接到代理失败。当没有运行中的代理或代理的端口被阻止时,会发生此情况。
public Desktop(String url)
resetAllOptions()
完成此操作)。url
- 打开代理的 URL。AgentConnectionException
- 如果连接到代理失败。当主机无效,指定主机上没有运行中的代理或代理机器将端口阻止时,会发生此情况。
protected Desktop(com.borland.silktest.jtf.internal.Agent agent)
public <T extends TestObject> T executeBaseState(IBaseState baseState)
T
- 由定位器指定的测试对象类型baseState
- 包含执行基态所需的全部信息TestObject
。BrowserBaseState
,
public void attach(String executablePattern, TechDomain... techdomains)
注意Borland 推荐使用 attach(String)
自动加载 Techdomain。选择性的 Techdomain 加载是仅有特定情境需要的高级技术。
executablePattern
- 应用程序的可执行名称。模式名称可包含通配符 '?' 和 '*',可匹配一个或多个字符。例如:myApplication.exe
myApplica?ion.exe
myApp*.exe
techdomains
- 应用程序中应加载的 tech 域。tech 域的常量定义在 TechDomain
中。
public void attach(String executablePattern, String commandLinePattern, TechDomain... techdomains)
*org.MyMainClass
)。
注意Borland 推荐使用 attach(String, String)
自动加载 Techdomain。选择性的 Techdomain 加载是仅有特定情境需要的高级技术。
executablePattern
- 应用程序的可执行名称。模式名称可包含通配符 '?' 和 '*',可匹配一个或多个字符。
例如:javaw.exe
java*.exe
commandLinePattern
- 此模式与应用程序的命令行参数相匹配。当一个应用程序(如:javaw.exe)有多个实例在运行,但仅应测试其中的部分实例时,这样做非常有用。对于 java 应用程序,命令行模式可以包含特征包或主类的名称,如:
*org.MyMainClass
)。techdomains
- 应用程序中应加载的 tech 域。tech 域的常量定义在 TechDomain
中。
public void attach(String executablePattern)
executablePattern
- 应用程序的可执行名称。模式名称可包含通配符 '?' 和 '*',可匹配一个或多个字符。
例如:myApplication.exe
myApplica?ion.exe
myApp*.exe
public void attach(String executablePattern, String commandLinePattern)
*org.MyMainClass
)。executablePattern
- 应用程序的可执行名称。模式名称可包含通配符 '?' 和 '*',可匹配一个或多个字符。
例如:javaw.exe
java*.exe
commandLinePattern
- 此模式与应用程序的命令行参数相匹配。
public void detachAll()
public Object getOption(String optionName)
desktop.getOption(CommonOptions.OPT_WAIT_RESOLVE_OBJDEF)
optionName
- 选项名称。关于可用的选项列表,可参见 CommonOptions
。public Object getOption(String optionName, TechDomain techDomain)
optionName
- 要查看可用选项列表,可参见 CommonOptions
。techDomain
- tech 域。public void setOption(String optionName, Object optionValue, TechDomain... techDomains)
desktop.setOption(CommonOptions.OPT_CUSTOM_ATTRIBUTES, Arrays.asList("automationId"), TechDomain.SWT, TechDomain.WIN32)
optionName
- 选项名称。关于可用的选项列表,可参见 CommonOptions
。techDomains
- tech 域的名称。optionValue
- 选项的值
public void setOption(String optionName, Object optionValue)
desktop.setOption(CommonOptions.OPT_WAIT_RESOLVE_OBJDEF, true)
optionName
- 选项名称。关于可用的选项列表,可参见 CommonOptions
。optionValue
- 选项的值。
public void resetAllOptions()
public String encrypt(String toEncrypt)
toEncrypt
- 要加密的字符串public String decrypt(String toDecrypt)
encrypt
方法加密的字符串。toDecrypt
- 要解密的字符串public String getClipboardText()
public void setClipboardText(String text)
text
- 剪贴板上的新文字
public <T> T createInProcessDllCall(Class<T> clz)
DllCall.createInProcessDllCall(Class, Desktop)
方法得到的结果相同。T
- 要支持的 DLL 调用接口clz
- 要支持的 DLL 调用接口类public <T> T createAgentDllCall(Class<T> clz)
DllCall.createAgentDllCall(Class, Desktop)
方法得到的结果相同。T
- 要支持的 DLL 调用接口clz
- 要支持的 DLL 调用接口类public <T> boolean unloadDllFromAgent(Class<T> dll)
T
- 要卸载的 DLL 类型dll
- 要卸载的 DLL 对象public void unloadAllDllsFromAgent()
public Desktop getDesktop()
AbstractTestObject
getDesktop
in class AbstractTestObject
public String toString()
AbstractTestObject
toString
in class AbstractTestObject
public void logInfo(String message)
message
- 要记录的消息
public void logInfo(String message, TruelogScreenshotMode screenshotMode)
message
- 要记录的消息screenshotMode
- 决定应记录的是完整桌面、活动应用程序还是活动窗口的屏幕截图。
public void logWarning(String message)
message
- 要记录的警告
public void logWarning(String message, TruelogScreenshotMode screenshotMode)
message
- 要记录的警告screenshotMode
- 决定应记录的是完整桌面、活动应用程序还是活动窗口的屏幕截图。
public void logError(String message)
message
- 要记录的错误
public void logError(String message, TruelogScreenshotMode screenshotMode)
message
- 要记录的错误screenshotMode
- 决定应记录的是完整桌面、活动应用程序还是活动窗口的屏幕截图。
public void verifyAsset(String verificationAsset)
verificationAsset
- .verification 文件的名称。文件扩展名可省略。VerificationFailedException
- 若未通过验证。ObjectNotFoundException
- 若找不到要验证的 UI 对象
public boolean tryVerifyAsset(String verificationAsset)
verificationAsset
- .verification 文件的名称。文件扩展名可省略。ObjectNotFoundException
- 若找不到要验证的 UI 对象
public void shutdownAgent()
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { desktop.shutdownAgent(); } }));
public void click()
IClickable
示例使用情况
例如,要单击控件中的某个位置,请键入以下内容:
control.click (MouseButton.LEFT, new Point(244, 16));
以下示例使用鼠标左键单击控件中心:
control.click ();
click
in interface IClickable
public void click(int button)
IClickable
示例使用情况
例如,要单击控件中的某个位置,请键入以下内容:
control.click (MouseButton.LEFT, new Point(244, 16));
以下示例使用鼠标左键单击控件中心:
control.click ();
click
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...public void click(int button, Point pos)
IClickable
示例使用情况
例如,要单击控件中的某个位置,请键入以下内容:
control.click (MouseButton.LEFT, new Point(244, 16));
以下示例使用鼠标左键单击控件中心:
control.click ();
click
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此单击public void click(int button, Point pos, ModifierKey modifiers)
IClickable
示例使用情况
例如,要单击控件中的某个位置,请键入以下内容:
control.click (MouseButton.LEFT, new Point(244, 16));
以下示例使用鼠标左键单击控件中心:
control.click ();
click
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此单击modifiers
- 修饰符public void doubleClick()
IClickable
doubleClick
in interface IClickable
public void doubleClick(int button)
IClickable
doubleClick
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...public void doubleClick(int button, Point pos)
IClickable
doubleClick
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此单击public void doubleClick(int button, Point pos, ModifierKey modifiers)
IClickable
doubleClick
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此单击modifiers
- 修饰符public void mouseMove()
IClickable
mouseMove
in interface IClickable
public void mouseMove(Point pos)
IClickable
mouseMove
in interface IClickable
pos
- 新位置坐标(相对于窗口)public void pressMouse()
IClickable
pressMouse
in interface IClickable
public void pressMouse(int button)
IClickable
pressMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...public void pressMouse(int button, Point pos)
IClickable
pressMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此点按鼠标public void pressMouse(int button, Point pos, ModifierKey modifiers)
IClickable
pressMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此点按鼠标modifiers
- 修饰符public void releaseMouse()
IClickable
releaseMouse
in interface IClickable
public void releaseMouse(int button)
IClickable
releaseMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...public void releaseMouse(int button, Point pos)
IClickable
releaseMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此松开鼠标public void releaseMouse(int button, Point pos, ModifierKey modifiers)
IClickable
releaseMouse
in interface IClickable
button
- 可点按的鼠标按钮。值包括:1= 左键,2= 右键,3= 中键...pos
- 坐标(相对于对象),在此松开鼠标modifiers
- 修饰符public void pressKeys(String keys)
IKeyable
有效按键包括:
public void pressKeys(String keys, boolean ensureFocus)
IKeyable
有效按键包括:
public void releaseKeys(String keys)
IKeyable
有效按键包括:
releaseKeys
in interface IKeyable
keys
- 可松开的键或鼠标按钮public void releaseKeys(String keys, boolean ensureFocus)
IKeyable
有效按键包括:
releaseKeys
in interface IKeyable
keys
- 可松开的键或鼠标按钮ensureFocus
- 确定控件是否一定具有按键焦点。默认为 true
public void typeKeys(String keys)
IKeyable
有效按键包括:
示例使用情况例如,以下代码通过按 Ctrl+C 复制当前所选文本至剪贴板:
window.typeKeys ("<Left Ctrl+C>");
public void typeKeys(String keys, int delay)
IKeyable
有效按键包括:
示例使用情况例如,以下代码通过按 Ctrl+C 复制当前所选文本至剪贴板:
window.typeKeys ("<Left Ctrl+C>");
public void typeKeys(String keys, int delay, boolean ensureFocus)
IKeyable
有效按键包括:
示例使用情况例如,以下代码通过按 Ctrl+C 复制当前所选文本至剪贴板:
window.typeKeys ("<Left Ctrl+C>");
public void typePasswordKeys(String keys)
IKeyable
如果对象支持 SetText 方法,那么在输入加密的密码前,任何现有文本都将清空。
示例使用情况
示例用法
例如,以下代码对字符串加密并将其打印到控制台:
String encryptedPassword = desktop.encrypt("my password"); System.out.println(encryptedPassword);
然后,您可以从控制台中复制加密的密码,在这种情况下是 6Fk+Bcm+GoXe3X0=
,并按照如下所示的方式使用:
textField.typePasswordKeys("6Fk+Bcm+GoXe3X0=");
typePasswordKeys
in interface IKeyable
keys
- 加密密码public void typePasswordKeys(String keys, int delay)
IKeyable
如果对象支持 SetText 方法,那么在输入加密的密码前,任何现有文本都将清空。
示例使用情况
示例用法
例如,以下代码对字符串加密并将其打印到控制台:
String encryptedPassword = desktop.encrypt("my password"); System.out.println(encryptedPassword);
然后,您可以从控制台中复制加密的密码,在这种情况下是 6Fk+Bcm+GoXe3X0=
,并按照如下所示的方式使用:
textField.typePasswordKeys("6Fk+Bcm+GoXe3X0=");
typePasswordKeys
in interface IKeyable
keys
- 加密密码delay
- 按键之间延迟时间(毫秒)public void typePasswordKeys(String keys, int delay, boolean ensureFocus)
IKeyable
如果对象支持 SetText 方法,那么在输入加密的密码前,任何现有文本都将清空。
示例使用情况
示例用法
例如,以下代码对字符串加密并将其打印到控制台:
String encryptedPassword = desktop.encrypt("my password"); System.out.println(encryptedPassword);
然后,您可以从控制台中复制加密的密码,在这种情况下是 6Fk+Bcm+GoXe3X0=
,并按照如下所示的方式使用:
textField.typePasswordKeys("6Fk+Bcm+GoXe3X0=");
typePasswordKeys
in interface IKeyable
keys
- 加密密码delay
- 按键之间延迟时间(毫秒)ensureFocus
- 确定控件是否一定具有按键焦点。默认为 true
Copyright 2009-2012 Micro Focus. All Rights Reserved.