51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2367|回复: 1
打印 上一主题 下一主题

[SilkTest] SilkTest在Silk4J中如何完成BS程序所有对象的遍历

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-11-28 16:54:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下代码主要完成了如下操作:
        在http://localhost:8081/phpwind_UTF8_8.7/upload/网页上将所有对象遍历并把对象类型打印出来
        进行对象类型的匹配(如:DomTextField)
        进行对象属性的匹配(如:nav_pwuser)
        在匹配好的对象上完成了数据的代填(如:用户名)
        给所有的DomTextField对象上完成了数据的代填(如:文本框)

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

  2. import com.borland.silktest.jtf.Desktop;
  3. import com.borland.silktest.jtf.TestObject;

  4. import org.junit.Before;
  5. import com.borland.silktest.jtf.BrowserBaseState;
  6. import org.junit.Test;
  7. import com.borland.silktest.jtf.xbrowser.BrowserApplication;
  8. import com.borland.silktest.jtf.xbrowser.BrowserWindow;
  9. import com.borland.silktest.jtf.xbrowser.DomButton;
  10. import com.borland.silktest.jtf.xbrowser.DomLink;
  11. import com.borland.silktest.jtf.xbrowser.DomTextField;
  12. import com.borland.silktest.jtf.common.types.MouseButton;
  13. import com.borland.silktest.jtf.common.types.Point;

  14. public class findAllWEBMethod {

  15.         private Desktop desktop = new Desktop();

  16.         @Before
  17.         public void baseState() {
  18.                 BrowserBaseState baseState = new BrowserBaseState();
  19.                 baseState.execute(desktop);
  20.         }

  21.         @Test
  22.         public void findAllMethod1() {
  23.                 desktop.<BrowserApplication>find("/BrowserApplication").setActive();
  24.                 desktop.<BrowserWindow>find("/BrowserApplication//BrowserWindow").navigate("http://localhost:8081/phpwind_UTF8_8.7/upload/");
  25.                 desktop.<DomTextField>find("//INPUT[@id='nav_pwuser']").click();
  26.                 desktop.<DomTextField>find("//INPUT[@id='nav_pwuser']").setText("admin");
  27.                 desktop.<DomTextField>find("//INPUT[@id='showpwd']").click();
  28.                 desktop.<DomTextField>find("//INPUT[@id='showpwd']").setText("admin");
  29.                 desktop.<DomButton>find("//BUTTON[@name='head_login']").click();
  30.                 desktop.<DomLink>find("//A[@textContents='退出']").click();
  31.                 try {
  32.                         Thread.sleep(2000);
  33.                 } catch (InterruptedException e) {
  34.                         // TODO Auto-generated catch block
  35.                         e.printStackTrace();
  36.                 }

  37.                 //获取所有的browserWindow的list对象
  38.                 List<TestObject> lc = desktop.findAll("//*");
  39.                 //List<TestObject> lc = desktop.getChildren();
  40.                 //如果需要获取所有的DomTextField的list对象
  41.                 //List<TestObject> lc = desktop.findAll("//DomTextField");
  42.                 //定义一个自定义属性值名称
  43.         String propertys = "id";
  44.         //定义一个TestObject对象
  45.         TestObject tobj;
  46.         //获取browserWindow的list的总数
  47.         int lcc = lc.size();
  48.         System.out.println(lcc);
  49.         //以list总数去遍历整个list对象
  50.         for (int i = 0; i < lcc; i++)
  51.         {
  52.             //获取lc的i个对象
  53.             tobj = lc.get(i);
  54.             List<String> tobjl;
  55.             String tobjs = null;
  56.             String tobjt;
  57.             //获取tobj对象的类型,如“SilkTest.Ntf.PushButton”
  58.             //获取到的数据为“com.borland.silktest.jtf.xbrowser.DomLink”
  59.             //tobjt = tobj.getClass().getName().toString();
  60.             //获取到的数据为“DomLink”
  61.             tobjt = tobj.getClass().getSimpleName();
  62.             System.out.println(tobjt);
  63.             //获取tobj对象的属性值,如“name”
  64.             //获取对象的所有属性列表
  65.             tobjl = tobj.getPropertyList();
  66.             System.out.println(tobjl);
  67.             //tobjs = tobj.GetProperty("DomTextField[id]").toString();
  68.             try
  69.             {
  70.                     tobjs = tobj.getProperty(propertys).toString();
  71.                     System.out.println(tobjs);
  72.                 //判断对象类型等于"SilkTest.Ntf.PushButton"
  73.                 if (tobjt.equals("DomTextField"))
  74.                 {
  75.                     //如果tobjs的属性为“nav_pwuser”则对其进行赋值
  76.                     if (tobjs.equals("nav_pwuser"))
  77.                     {
  78.                         //给对象类型为"SilkTest.Ntf.XBrowser.DomTextField",对象属性为tobjs的对象赋值为admin
  79.                             desktop.<DomTextField>find("//INPUT[@" + propertys + "='" + tobjs + "']").setText("admin");
  80.                     }
  81.                     //给所有的DomTextField赋值
  82.                     desktop.<DomTextField>find("//INPUT[@" + propertys + "='" + tobjs + "']").setText("admin");
  83.                 }
  84.             }catch(Exception e){
  85.                     //e.toString("对象不支持此" + propertys + "属性!");
  86.                     //e.printStackTrace();
  87.                     //e.printStackTrace();
  88.             }
  89.         }
  90.         }
  91. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2013-11-29 10:12:12 | 只看该作者
学习中,感谢版主分享
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 09:34 , Processed in 0.066850 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表