【问题标题】:Coded UI Controls need to refresh编码的 UI 控件需要刷新
【发布时间】:2011-03-10 16:00:11
【问题描述】:

我正在使用一个编码的 UI 测试工具,它查看我们编写的 jQuery 网格。我遇到的问题是,当网格分页时,当我再次尝试调用分页时,编码的 ui 会跟踪旧控件。我想一个例子会更好地解释它:

BaseMap.MSMaintenanceMap.PageNext(); BaseMap.MSMaintenanceMap.PageNext();

这是我要开始工作的代码。问题出在生成的设计器文件中:

if ((this.mUITitlePagingRowRow == null)) { this.mUITitlePagingRowRow = new UITitlePagingRowRow(this); }

当我把它改成这样时:

this.mUITitlePagingRowRow = new UITitlePagingRowRow(this);

它每次都有效。问题是当 uitest 重新生成时,由于显而易见的原因,这会恢复。是否有任何人知道我可以放入 .uitest 文件以始终获取最新版本的控件的其他参数?

【问题讨论】:

  • 哦,我要提一提的是页面不会回发,它会调用 jQuery ajax 来获取下一页数据。

标签: asp.net asp.net-mvc coded-ui-tests


【解决方案1】:

将 AlwaysSearch 添加到控件的 SearchConfigurations 中,这会强制测试不缓存控件,而是始终使用定义的属性查找它。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    您可以通过测试方法刷新地图。因此,当您第二次在部分类中调用该方法时,只需输入类似BaseMap BaseMap = new BaseMap(); 的内容,然后这将刷新地图,您可以调用BaseMap.MSMaintenanceMap.PageNext(); 而不会出现刷新问题。

    解决此问题的另一种方法是不依赖BaseMap.Designer.cs。您可以在BaseMap.cs 部分类中手动编写该方法。这不会生成。将PageNext() 对象记录到地图中。然后写一个这样的方法:

    public void PageNext()
    {
        BaseMap = new BaseMap();
    
        Mouse.Click('TheObjectYouRecorded');
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多