使用UI Automation库用于UI自动化测试

发表于:2011-1-07 14:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderZh(cnblogs)    来源:51Testing软件测试网采编

分享:

  往往我们使用控件的Name属性来标识,因此,我们可以再一步封装一下:

static AutomationElement WaitForElement(int milisecondTimeout, params string[] controlTexts)
{
    var waitTime 
= 0;
    AutomationElement child 
= null;

    
while (true)
    {
        var parent 
= AutomationElement.RootElement;
        var founded 
= true;
        
foreach (var text in controlTexts)
        {
            child 
= WaitForElement(parent, text, 10);
            
if (child == null)
            {
                founded 
= false;
                
break;
            }
            parent 
= child;
        }

        
if (founded)
        {
            
break;
        }

        
if (waitTime >= milisecondTimeout)
        {
            child 
= null;
            
break;
        }

        Thread.Sleep(
500);
        waitTime 
+= 500;
    }
    
    
return child;
}

  因此,我就可以这样来等待一个控件的出现:

var btn = WaitForElement(5000"安装向导""完成");

  甚至可以把按钮的点击也封装,封装成下面的方式调用,就像在AutoIt脚本里一样简单:

Click("安装向导""完成");

  最后,其实我想说的是,在codeplex上,有一个开源项目White,对UI Automation进行了一些易用性上的封装,非常值得我们去学习和参考,甚至直接拿来使用。下一篇我们将继续学习White测试框架,敬请关注。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

精彩评论

  • tottawang
    2011-1-07 23:56:12

    用用coded ui 吧 white 也不错因为开源

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号