小编Dan*_*one的帖子

无法确定我的Web应用程序中是否存在某个UITestControl

我目前正在尝试使用C#为Web应用程序自动化一些编码的UI测试.我遇到的一个常见问题是,确定UITestControl页面上是否存在对象非常困难.遗憾的是,微软在其MSDN网站上提供的有关编码UI测试的文档实际上并不存在(请参阅此处的页面UITestControl).

基本上我要问的是:

  • 确定UITestControl页面上是否存在的最佳方法是什么?
  • 该UITestControl.Exists物业如何运作?
  • 该UITestControl.Find()方法有什么作用?
  • 该UITestControl.TryFind()方法如何工作?

我是怎么试图处理它的:

正如我之前提到的,所有这些类和方法的文档大多是空白的.你可以用来描述任何方法和属性的最多是Intellisense中的1行描述,所以我一直在试验列出的方法.

首先,我尝试检查该UITestControl.Exists属性是否属实,但随着时间的推移并咨询其他人的经验,即使浏览器未打开,也很明显它总是返回true.由于看起来最明显的选项不起作用,我尝试使用该UITestControl.Find()方法,但由于它不需要参数并且什么都不返回,所以我无法弄清楚它的作用.我尝试使用这种UITestControl.TryFind()方法,偶尔也可以使用,但我发现当我没有在正确的页面上时,它似乎只会返回错误; 否则它总是返回true.显然我不知道它是如何工作的,不应该用它作为测试.

我想如果我不能得到提供的方法来完成他们的工作,我必须尝试制作自己的工具.我最近尝试Mouse.Hover(UITestControl)在try/catch块中使用来确定控件是否存在如下:

public bool DoesExist(UITestControl control){
   if(control == null)
      return false;

   try{ Mouse.Hover(control); }
   catch (UITestException)
   {
      return false;
   }

   return true;
}
Run Code Online (Sandbox Code Playgroud)

它有时会起作用,但在某些情况下它似乎会因为我不理解的原因而返回误报.我仍然是盲目的,我几乎没有想法.

我使用的是Visual Studio 2012和Microsoft .NET Framework 4.5.50709版.

c# web-applications coded-ui-tests visual-studio-2012

9
推荐指数
1
解决办法
4910
查看次数