51Testing软件测试论坛
标题:
请问RFT怎么去识别一个弹出的对话框是否存在?
[打印本页]
作者:
sypm
时间:
2008-8-19 16:25
标题:
请问RFT怎么去识别一个弹出的对话框是否存在?
一个案例,其中有一个界面会随机弹出一个对话框,请问我用RFT怎么去识别这个对话框是否存在或是不存在如何返回一个NULL或其它可以识别的值?
作者:
sypm
时间:
2008-8-20 10:49
,有人回答我吗?
作者:
dreamever
时间:
2008-8-23 11:55
可以用一个while循环来判断。首先这个对话框应该有一个我们可以进行识别的属性。在识别时我们需要实现如下需求,如果对话框存在,则返回true;如果不存在则等待5秒,如果在5秒内能等待到这个对象,则返回true,否则返回false。
我们创建方法public boolean isDialogExists(String id,string value)来实现,其中id和value 是我们用来识别对话框的属性
该方法的实现应该类似于如下代码:
public boolean isDialogExists(String id,String value){
boolean flag = false;
int time = 0;
while(!flag && time < 5){
RootTestObject root = getRootTestObject();
TestObject[] to = root.find(atDescendant(id, value));
if(to.length != 0){
flag = true;
}else{
sleep(1);
time++;
}
}
return flag;
}
作者:
lovetest6
时间:
2008-9-27 16:38
楼上的代码和RFT本身的wait实现差不多,那个实现略完整。
作者:
sypm
时间:
2008-9-28 16:53
我用下面的方法根本找不到对象,请问这是为什么啊?每次返回的长度都是0,所以dreamever给我的代码我根本没办法用
RootTestObject root = getRootTestObject();
TestObject[] to = root.find(atDescendant ("name", "筛选数据失败,请稍后再试或重新登入程序再试!"));
System.out.println (to.length);
[img]
[/img]
作者:
sypm
时间:
2008-10-6 11:33
请问这个问题怎么解决啊?有人帮助我吗?
作者:
sypm
时间:
2008-10-8 11:29
来人啊!!!!求助啊!版主帮忙想办法啊
作者:
z554308576
时间:
2008-10-9 14:02
查看
http://www.ibm.com/developerwork ... ;ca=dnl-cn-03052008
/ 打开窗体
//返回windows系统中顶层窗口的对象, gettopwindows(打开),返回打开窗口
//topwindows可以执行inputchars()方法
public IWindow getTopWindow(String objName){
IWindow[] wins = RationalTestScript.getTopWindows();// 返回windows对象数组
int length=wins.length;//获取长度
for(int i=0;i<length;i++){
if(wins
.getText().matches(objName)){//标题
return wins
;
}
}
return null;
}
// 返回打开按钮
public IWindow getLevelWindow(String topWinName, String levelWinName) {
IWindow winobjects = null;
IWindow[] wins=RationalTestScript.getTopWindows();// 返回windows对象数组
for (int i = 0; i < wins.length; i++) {// 在数组中查找所有符合topWinName属性的对象
if (wins
.getText().equals(topWinName)) {
winobjects = wins
;
}
}
IWindow[] winobj = winobjects.getChildren(); //识别打开按钮
for (int i = 0; i < winobj.length; i++) {
if (winobj
.getText().equals(levelWinName)) {// 在顶层对象中,查找符合levelName属性的对象
return winobj
;
}
}
return null;
}
放到TASKS里面的
//打开文件对话框
public void setopen(String fo){
a.getHtml_theFile().click(atPoint(164,6));//路径
IWindow n=a.getTopWindow("选择文件");
//必须判断
if(n!=null){
IWindow m=a.getLevelWindow("选择文件","打开(&O)");//返回按钮
if(m!=null){
a.getLevelWindow("选择文件", "文件名(&N):").click();//点击文件保存文本框,获取焦点.
a.getTopWindow("选择文件").inputChars(fo);
m.click();
}
}
}
//取消
public void clo(){
a.getHtml_theFile().click(atPoint(164,6));//路径
IWindow n=a.getTopWindow("选择文件");
//必须判断
if(n!=null){
IWindow m=a.getLevelWindow("选择文件","取消");//返回按钮
if(m!=null){
m.click();
}
}
}
作者:
billwf120
时间:
2008-10-14 13:33
RootTestObject root = getRootTestObject();
TestObject[] to = root.find(atDescendant (
"name"
,
"筛选数据失败,请稍后再试或重新登入程序再试!
"));
System.out.println (to.length);
属性名前要加上句号
,
在一个你这段汉字文字标点有问题,中间用英文的逗号,最后用了汉字的感叹号。这个值你最好到map里面copy一下。
RootTestObject root = getRootTestObject();
TestObject[] to = root.find(atDescendant (".name", "筛选数据失败,请稍后再试或重新登入程序再试!"));
System.out.println (to.length);
作者:
sypm
时间:
2008-10-16 15:18
标题:
回复 9# 的帖子
billwf120 ,你好,谢谢你提供方法,但你的方法我都试过了,而且我的那段文字是从属性里COPY过来的!所以我才不解
作者:
sypm
时间:
2008-10-16 18:14
苍天啊,大地啊!问题解决了,原来我装了一个RFT8.0版本,这段代码运行不成功,换成7.0.1就好了,呵呵,谢谢大家!
作者:
billwf120
时间:
2008-10-20 17:25
标题:
回复 11# 的帖子
7.0.1也有些问题,比如我写在这里的:
http://bbs.51testing.com/thread-129221-1-1.html
换成7.0就没问题了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2