|
如下代码主要完成了如下操作:
在XP系统自带的“计算器”上将所有对象遍历并把对象类型打印出来
进行对象类型的匹配(如:SilkTest.Ntf.PushButton)
进行对象属性的匹配(如:caption)
通过正则表达式来进行对象过滤(如:regexs)
在匹配好的对象上完成了PushButton的点击(如:数字按钮)
取得计算器上显示的数字并打印出来(如:TextField)
下面是完整的代码:- using System;
- using System.Collections.Generic;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using SilkTest.Ntf;
- using System.Text.RegularExpressions;
- namespace Silk4NETFoundAllObject
- {
- [SilkTestClass]
- public class findAllCSObject
- {
- private readonly Desktop _desktop = Agent.Desktop;
- [TestInitialize]
- public void Initialize()
- {
- BaseState baseState = new BaseState();
- baseState.Execute();
- }
- [TestMethod]
- public void TestMethod1()
- {
- Window 计算器 = _desktop.Window("@caption='计算器'");
- 计算器.SetActive();
- 计算器.PushButton("@caption='4'").Select();
- 计算器.PushButton("@caption='+'").Select();
- 计算器.PushButton("@caption='3'").Select();
- 计算器.PushButton("@caption='='").Select();
- 计算器.PushButton("[18]").Select();
- 计算器.PushButton("@caption='3'").Select();
- 计算器.PushButton("@caption='='").Select();
- //计算器.TextField().SetText("21. ");
- //Assert.AreEqual("21. ", 计算器.TextField().Text);
- //定义一个正则表达式的模板
- String regexs = @"^\d$";
- //获取所有的计算器的list对象
- List<TestObject> lc = 计算器.GetChildren();
- //定义一个TestObject对象
- TestObject tobj;
- //获取计算器的list的总数
- int lcc = lc.Count;
- Console.WriteLine(lcc);
- //以list总数去遍历整个list对象
- for (int i = 0; i < lcc; i++)
- {
- //获取lc的i个对象
- tobj = lc[i];
- String tobjs;
- String tobjt;
- //获取tobj对象的类型,如“SilkTest.Ntf.PushButton”
- tobjt = tobj.GetType().ToString();
- //获取tobj对象的属性值,如“caption”
- tobjs = tobj.GetProperty("caption").ToString();
- Console.WriteLine(tobjt);
- Console.WriteLine(tobjs);
- //判断对象类型等于"SilkTest.Ntf.PushButton"
- if (tobjt == "SilkTest.Ntf.PushButton")
- {
- //通过正则表达式来判断是否为数字,如果为数字则按下按钮
- if (Regex.IsMatch(tobjs,regexs))
- {
- //点击对象类型为"SilkTest.Ntf.PushButton",对象属性为tobjs的对象
- 计算器.PushButton("@caption='" + tobjs + "'").Select();
- }
-
- }
- //判断对象类型等于"SilkTest.Ntf.TextField"
- else if(tobjt == "SilkTest.Ntf.TextField")
- {
- //获取该对象的text属性值
- string TF = 计算器.TextField("@caption='" + tobjs + "'").Text;
- Console.WriteLine("TF shi:" + TF);
- }
-
- //Console.WriteLine("windowid:" + tobjs.ToString());
- }
- }
- }
- }
复制代码 |
|