无法对隐藏控件执行“单击”

时间:2014-01-02 23:35:50

标签: c# asp.net coded-ui-tests

我声明了ID文本框,如果声明ID重复,claim found链接会显示在声明ID文本框下方。单击此链接时,它会显示现有的声明详细信息。我需要测试这个点击事件并弹出。

 public HtmlHyperlink UIClaimFoundHyperlink
 {
     get
     {
         if ((this.mClaimFoundHyperlink == null))
         {
             this.mClaimFoundHyperlink = new HtmlHyperlink(this);
             #region Search Criteria
             this.mClaimFoundHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "aClaimLink";
             this.mClaimFoundHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Name] = null;
             this.mClaimFoundHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Target] = null;
             this.mClaimFoundHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Claim Found";
             this.mClaimFoundHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Title] = null;
             this.mClaimFoundHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Class] = "listTblData-hotlink-noalign";
             #endregion
         }
         return this.mClaimFoundHyperlink;
     }
 }

if (claimFound_Hyperlink.Exists)
{
   Mouse.Click(claimFound_Hyperlink);
}

但它正在投掷  Cannot perform 'Click' on the hidden control.

我尝试过现有的解决方案但不适合我。 我可以在UI上看到控件。

我在'alt''type''value attribute'

上看到例外情况

- > “claimFound_Hyperlink.Alt”引发了“System.NotSupportedException

类型的例外情况

这可能是个问题吗?

请帮忙。

2 个答案:

答案 0 :(得分:4)

第二次显示窗口时可能会发生这种情况。对于眼睛来说,两个窗口是相同的,但它们是不同的。第一次出现窗口并且Coded UI访问它时,上面显示的属性代码设置this.mClaimFoundHyperlink以引用该窗口。当窗口第二次显示时,this.mClaimFoundHyperlink仍然引用第一个窗口,该窗口不再可用。因此例外。

有时刷新物业有效。尝试拨打this.mClaimFoundHyperlink.Find()

另请参阅this question有关类似问题的信息。

答案 1 :(得分:0)

我最近遇到了类似的问题,结果问题是UITestControl(在我的情况下是一个HtmlCell)只有在浏览器窗口最大化时才会被隐藏。我在尝试点击之前使用此代码恢复窗口:

BrowserWindow browser.Restored = true;

它也可能适合你。

另外需要注意的是,运行测试的VM的屏幕分辨率必须是一定大小才能使Click操作正常工作。我知道这很疯狂,但是我在这个问题上挣扎了一个星期才开始工作。尝试提高屏幕分辨率。