51Testing软件测试论坛

标题: SilkTest在Silk4J中如何完成CS程序所有对象的遍历 [打印本页]

作者: 沅芷湘兰    时间: 2013-11-28 16:55
标题: SilkTest在Silk4J中如何完成CS程序所有对象的遍历
如下代码主要完成了如下操作:
        在XP系统自带的“计算器”上将所有对象遍历并把对象类型打印出来
        进行对象类型的匹配(如:PushButton)
        进行对象属性的匹配(如:caption)
        通过正则表达式来进行对象过滤(如:regexs)
        在匹配好的对象上完成了PushButton的点击(如:数字按钮)

下面是完整的代码:
  1. import java.util.List;

  2. import com.borland.silktest.jtf.Desktop;
  3. import org.junit.Before;
  4. import com.borland.silktest.jtf.BaseState;
  5. import org.junit.Test;

  6. import com.borland.silktest.jtf.TestObject;
  7. import com.borland.silktest.jtf.Window;
  8. import com.borland.silktest.jtf.PushButton;

  9. import org.junit.Assert;

  10. public class findAllCSMethod {

  11.         private Desktop desktop = new Desktop();

  12.         @Before
  13.         public void baseState() {
  14.                 BaseState baseState = new BaseState();
  15.                 baseState.execute(desktop);
  16.         }

  17.         @Test
  18.         public void findAllCSMethod1() {
  19.                 desktop.<Window>find("/Window[@caption='计算器']").setActive();
  20.                 desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='C']").select();
  21.                 desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='1']").select();
  22.                 desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='+']").select();
  23.                 desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='3']").select();
  24.                 desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='=']").select();
  25.                 //desktop.<TextField>find("/Window[@caption='计算器']//TextField").setPosition(new TextPosition(0, 3));
  26.                 //desktop.<TextField>find("/Window[@caption='计算器']//TextField").setText("4. ");
  27.                 //TextField textField = desktop.<TextField>find("/Window[@caption='计算器']//TextField");
  28.                 //Assert.assertEquals("4. ", textField.getText());
  29.                
  30.                 try {
  31.                         Thread.sleep(2000);
  32.                 } catch (InterruptedException e) {
  33.                         // TODO Auto-generated catch block
  34.                         e.printStackTrace();
  35.                 }

  36.                 //获取所有的browserWindow的list对象
  37.                 List<TestObject> lc = desktop.findAll("//*");
  38.                 //List<TestObject> lc = desktop.getChildren();
  39.                 //如果需要获取所有的DomTextField的list对象
  40.                 //List<TestObject> lc = desktop.findAll("//DomTextField");
  41.                 //定义一个自定义属性值名称
  42.         String propertys = "caption";
  43.         //定义一个TestObject对象
  44.         TestObject tobj;
  45.         //定义一个正则表达式的模板
  46.         String regexs = "[0-9]*";
  47.         //获取browserWindow的list的总数
  48.         int lcc = lc.size();
  49.         System.out.println(lcc);
  50.         //以list总数去遍历整个list对象
  51.         for (int i = 0; i < lcc; i++)
  52.         {
  53.             //获取lc的i个对象
  54.             tobj = lc.get(i);
  55.             List<String> tobjl;
  56.             String tobjs = null;
  57.             String tobjt;
  58.             //获取tobj对象的类型,如“PushButton”
  59.             //tobjt = tobj.getClass().getName().toString();
  60.             //获取到的数据为“DomLink”
  61.             tobjt = tobj.getClass().getSimpleName();
  62.             System.out.println(tobjt);
  63.             //获取对象的所有属性列表
  64.             tobjl = tobj.getPropertyList();
  65.             System.out.println(tobjl);
  66.             try
  67.             {
  68.                     //获取tobj对象的属性值,如“name”
  69.                     tobjs = tobj.getProperty(propertys).toString();
  70.                     System.out.println(tobjs);
  71.                 //判断对象类型等于"PushButton"
  72.                 if (tobjt.equals("PushButton"))
  73.                 {
  74.                     //点击所有匹配regexs的PushButton按钮
  75.                     if (tobjs.matches(regexs))
  76.                     {
  77.                         //点击对象类型为"PushButton",对象属性为tobjs的按钮
  78.                             desktop.<PushButton>find("/Window[@caption='计算器']//" + tobjt + "[@" + propertys + "='" + tobjs + "']").select();
  79.                     }
  80.                     //点击所有的PushButton按钮
  81.                     //desktop.<PushButton>find("/Window[@caption='计算器']//" + tobjt + "[@" + propertys + "='" + tobjs + "']").select();
  82.                 }
  83.             }catch(Exception e){
  84.                     //e.toString("对象不支持此" + propertys + "属性!");
  85.                     //e.printStackTrace();
  86.                     //e.printStackTrace();
  87.             }
  88.         }

  89.         }

  90. }
复制代码

作者: 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