编码的UI测试:文本框值始终为null

时间:2013-10-07 13:21:21

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

我是编码UI测试的新手,有人可以帮助我如何检索文本框值,因为我一直在获取空值。我在我的方法中添加了一个断言,用于验证文本框的值,但是如果由于实际数据始终为null而继续失败。以下是我的示例代码。在此先感谢您的帮助。

这是我在CodeUItest类中的测试方法

[TestMethod]
    public void TBParameterTest()
    {
        this.UIMap.ValidateTBValue();            
    }


 public void ValidateTBValue()
    {
        #region Variable Declarations
        WinEdit uIItemEdit = this.UIContigoWindow.UIItemCell.UIItemEdit;


        #endregion

        // Verify that the 'Text' property of text box equals '1200'
        Assert.AreEqual(this.ValidateTBValueExpectedValues.UIItemEditText, uIItemEdit.Text, "Not equal to previous value when parameter is not yet modified");
    }

即使网页中的值等于1200,uIItemEdit.Text也始终为null。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过两种不同的方式解决此问题:

  1. 更好的选择是调整搜索属性以搜索某些唯一标识符(名称,类...)。

  2. 如果开发人员无法找到或添加唯一标识符,则第二个选项是使用每个FindMatchingControls()都有的UITestControl。这将为您提供所有控件,在您的情况下,所有WinEdit控件都匹配SearchProperties。在此控件集合上,您可以运行链接查询以查找所需的控件,或运行类似以下内容:

  3. var controls= myControl.FindMatchingControls()l
    
    foreach (var control in controls) 
    { 
        control.DrawHighlight();
    }
    

    这将使您能够找到所需的控件。从这一点开始,您可以直接调用它并获取它的文本值:

    var textValue = controls[index].Text;
    

    并将此值用于断言。