分享和关爱由此萌生,测试的人生会像流水和氧气 ,逐渐逐渐染绿了山河,染蓝了天空,萌生了飞鸟鱼虫,遍地都是生命。这是寒武纪带给我们的这份喜悦和希望。

Visual Studio Coded UI 当找不到控件时该如何思考-上

上一篇 / 下一篇  2016-09-23 21:37:10 / 个人分类:VisualStudio CodedUI Automation

最近,我在编辑Coded UI automation的时候,遇到过一个问题。

一个看似很简单的控件,却无法识别。在回放的过程中,它的报错信息为:


也就是说,VS2012认为这个控件是隐藏的控件。可是,这个控件明明是显示的控件,并不是隐藏的控件,为何在回放的时候,VS2012无法识别呢?

另外一点可以注意到,在这个报错信息下,还非常清楚的列出了这个控件的所有属性,比如:

ControlType:Edit

Id:username

 等等,一切仿佛都预示着,这个控件被很明确的找到了。

 而那句寻找用户名的语句是在登陆界面的如下语句:

 uI用户名Edit.Text ="a";

 如果需要寻找的控件是在浏览器直接打开的页面中(情况A),那么是可以成功的寻找到这个控件的,而如果,用户在浏览器直接打开的页面中点击了某个按钮或者链接而出现的页面中才会有这个控件(情况B),那么就会有一定的几率,VS2012无法识别到这个控件。

 于是,我就在想,VS2012,在寻找控件的时候是否有一定的机制?

 

于是我模拟A的寻找机制,如果情况A百分之百找到控件,那么情况B是否可以找到

 

于是有以下几种情况按照情况A寻找控件

 

1

 #region Variable Declarations

HtmlEdit uI用户名Edit =this.UIMap.UIChrome插件谷歌浏览器插件提供ChrWindow.UI登录Chrome插件Document.UI用户名Edit;

#endregion

 

uI用户名Edit.Text ="a";

2

#region Variable Declarations

HtmlEdit uI用户名Edit =new HtmlEdit(this.UIMap.UIChrome插件谷歌浏览器插件提供ChrWindow.UI登录Chrome插件Document);//必须是HtmlEdit上一级以上

#endregion

 

   uI用户名Edit.SearchProperties[HtmlEdit.PropertyNames.Id] ="UserName";

            uI用户名Edit.SearchProperties[HtmlEdit.PropertyNames.Name] ="UserName";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.LabeledBy] ="用户名";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Type] ="SINGLELINE";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Title] =null;

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Class] =null;

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.ControlDefinition] ="name=\"UserName\" id=\"UserName\" type=\"text";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.TagInstance] ="3";

 

 uI用户名Edit.Find();  //这句话加或不加都可以

 

   uI用户名Edit.Text ="a";

3

#region Variable Declarations

HtmlEdit uI用户名Edit =new HtmlEdit(this.UIMap.UIChrome插件谷歌浏览器插件提供ChrWindow);//必须是HtmlEdit上一级以上

#endregion

 

   uI用户名Edit.SearchProperties[HtmlEdit.PropertyNames.Id] ="UserName";

            uI用户名Edit.SearchProperties[HtmlEdit.PropertyNames.Name] ="UserName";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.LabeledBy] ="用户名";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Type] ="SINGLELINE";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Title] =null;

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.Class] =null;

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.ControlDefinition] ="name=\"UserName\" id=\"UserName\" type=\"text";

            uI用户名Edit.FilterProperties[HtmlEdit.PropertyNames.TagInstance] ="3";

 uI用户名Edit.Find();  //这句话加或不加都可以

 

   uI用户名Edit.Text ="a";




TAG: 如何

 

评分:0

我来说两句

wchair

wchair

测试爱好者,数学爱好者,幻想爱好者,故事爱好者!

日历

« 2024-04-12  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 40535
  • 日志数: 32
  • 建立时间: 2007-11-13
  • 更新时间: 2022-11-29

RSS订阅

Open Toolbar