51Testing软件测试论坛
标题:
SilkTest在Silk4J中如何完成CS程序所有对象的遍历
[打印本页]
作者:
沅芷湘兰
时间:
2013-11-28 16:55
标题:
SilkTest在Silk4J中如何完成CS程序所有对象的遍历
如下代码主要完成了如下操作:
在XP系统自带的“计算器”上将所有对象遍历并把对象类型打印出来
进行对象类型的匹配(如:PushButton)
进行对象属性的匹配(如:caption)
通过正则表达式来进行对象过滤(如:regexs)
在匹配好的对象上完成了PushButton的点击(如:数字按钮)
下面是完整的代码:
import java.util.List;
import com.borland.silktest.jtf.Desktop;
import org.junit.Before;
import com.borland.silktest.jtf.BaseState;
import org.junit.Test;
import com.borland.silktest.jtf.TestObject;
import com.borland.silktest.jtf.Window;
import com.borland.silktest.jtf.PushButton;
import org.junit.Assert;
public class findAllCSMethod {
private Desktop desktop = new Desktop();
@Before
public void baseState() {
BaseState baseState = new BaseState();
baseState.execute(desktop);
}
@Test
public void findAllCSMethod1() {
desktop.<Window>find("/Window[@caption='计算器']").setActive();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='C']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='1']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='+']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='3']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='=']").select();
//desktop.<TextField>find("/Window[@caption='计算器']//TextField").setPosition(new TextPosition(0, 3));
//desktop.<TextField>find("/Window[@caption='计算器']//TextField").setText("4. ");
//TextField textField = desktop.<TextField>find("/Window[@caption='计算器']//TextField");
//Assert.assertEquals("4. ", textField.getText());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取所有的browserWindow的list对象
List<TestObject> lc = desktop.findAll("//*");
//List<TestObject> lc = desktop.getChildren();
//如果需要获取所有的DomTextField的list对象
//List<TestObject> lc = desktop.findAll("//DomTextField");
//定义一个自定义属性值名称
String propertys = "caption";
//定义一个TestObject对象
TestObject tobj;
//定义一个正则表达式的模板
String regexs = "[0-9]*";
//获取browserWindow的list的总数
int lcc = lc.size();
System.out.println(lcc);
//以list总数去遍历整个list对象
for (int i = 0; i < lcc; i++)
{
//获取lc的i个对象
tobj = lc.get(i);
List<String> tobjl;
String tobjs = null;
String tobjt;
//获取tobj对象的类型,如“PushButton”
//tobjt = tobj.getClass().getName().toString();
//获取到的数据为“DomLink”
tobjt = tobj.getClass().getSimpleName();
System.out.println(tobjt);
//获取对象的所有属性列表
tobjl = tobj.getPropertyList();
System.out.println(tobjl);
try
{
//获取tobj对象的属性值,如“name”
tobjs = tobj.getProperty(propertys).toString();
System.out.println(tobjs);
//判断对象类型等于"PushButton"
if (tobjt.equals("PushButton"))
{
//点击所有匹配regexs的PushButton按钮
if (tobjs.matches(regexs))
{
//点击对象类型为"PushButton",对象属性为tobjs的按钮
desktop.<PushButton>find("/Window[@caption='计算器']//" + tobjt + "[@" + propertys + "='" + tobjs + "']").select();
}
//点击所有的PushButton按钮
//desktop.<PushButton>find("/Window[@caption='计算器']//" + tobjt + "[@" + propertys + "='" + tobjs + "']").select();
}
}catch(Exception e){
//e.toString("对象不支持此" + propertys + "属性!");
//e.printStackTrace();
//e.printStackTrace();
}
}
}
}
复制代码
作者:
ppcqf
时间:
2014-3-1 13:49
绝对喜欢,好帖子不多哦,顶一下
tnt辅助
|
强化辅助免费版
|
tnt辅助刷武器永久
作者:
huhu97
时间:
2014-10-30 17:43
这个代码是不是有问题,怎么我这看到的很奇怪啊,比如:
public class findAllCSMethod {
private Desktop desktop = new Desktop();
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2