51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2458|回复: 0
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

完整的代码如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using SilkTest.Ntf;
  5. using SilkTest.Ntf.XBrowser;
  6. using System.Text.RegularExpressions;

  7. namespace Silk4NETFoundAllObject
  8. {
  9.     [SilkTestClass]
  10.     public class findAllWEBObject
  11.     {
  12.         private readonly Desktop _desktop = Agent.Desktop;

  13.         [TestInitialize]
  14.         public void Initialize()
  15.         {
  16.             BaseState baseState = new BaseState();
  17.             baseState.Execute();
  18.         }

  19.         [TestMethod]
  20.         public void TestMethod11()
  21.         {
  22.             BrowserApplication webBrowser = _desktop.BrowserApplication();

  23.             BrowserWindow browserWindow = webBrowser.BrowserWindow();
  24.             browserWindow.Navigate("http://localhost:8081/phpwind_UTF8_8.7/upload/");
  25.             browserWindow.DomTextField("//INPUT[@id='nav_pwuser']").Click(MouseButton.Left, new Point(70, 9));
  26.             browserWindow.DomTextField("//INPUT[@id='nav_pwuser']").TypeKeys("admin");
  27.             browserWindow.DomTextField("//INPUT[@id='showpwd']").Click(MouseButton.Left, new Point(45, 10));
  28.             browserWindow.DomTextField("//INPUT[@id='showpwd']").TypeKeys("admin");
  29.             browserWindow.DomButton("//BUTTON[@name='head_login']").Click(MouseButton.Left, new Point(20, 11));
  30.             Assert.AreEqual("admin", browserWindow.DomElement("//SPAN[@textContents='admin'][1]").Text);
  31.             browserWindow.DomLink("//A[@textContents='退出']").Click(MouseButton.Left, new Point(13, 6));
  32.             System.Threading.Thread.Sleep(2000);

  33.             //获取所有的browserWindow的list对象
  34.             IList<TestObject> lc = browserWindow.FindAll("//*");
  35.             //如果需要获取所有的DomTextField的list对象
  36.             //IList<TestObject> lc = browserWindow.FindAll("//DomTextField");
  37.             //定义一个自定义属性值名称
  38.             String propertys = "id";
  39.             //定义一个TestObject对象
  40.             TestObject tobj;
  41.             //获取browserWindow的list的总数
  42.             int lcc = lc.Count;
  43.             Console.WriteLine(lcc);
  44.             //以list总数去遍历整个list对象
  45.             for (int i = 0; i < lcc; i++)
  46.             {
  47.                 //获取lc的i个对象
  48.                 tobj = lc[i];
  49.                 String tobjs;
  50.                 String tobjt;
  51.                 //获取tobj对象的类型,如“SilkTest.Ntf.PushButton”
  52.                 tobjt = tobj.GetType().ToString();
  53.                 //获取tobj对象的属性值,如“name”
  54.                 //tobjs = browserWindow.DomTextField("//INPUT[@id='showpwd']").GetProperty("name").ToString();
  55.                 tobjs = tobj.GetProperty(propertys).ToString();
  56.                 //tobjs = tobj.GetProperty("DomTextField[id]").ToString();
  57.                 Console.WriteLine(tobjt);
  58.                 Console.WriteLine(tobjs);
  59.                 //判断对象类型等于" SilkTest.Ntf.XBrowser.DomTextField "
  60.                 if (tobjt == "SilkTest.Ntf.XBrowser.DomTextField")
  61.                 {
  62.                     //如果tobjs的属性为“nav_pwuser”则对其进行赋值
  63.                     if (tobjs == "nav_pwuser")
  64.                     {
  65.                         //给对象类型为"SilkTest.Ntf.XBrowser.DomTextField",对象属性为tobjs的对象赋值为admin
  66.                         browserWindow.DomTextField("@" + propertys + "='" + tobjs + "'").SetText("admin");
  67.                     }

  68.                 }
  69.             }
  70.         }
  71.     }
  72. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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