C# 编码UI测试:文本框值始终为空

C# 编码UI测试:文本框值始终为空,c#,asp.net,textbox,assert,coded-ui-tests,C#,Asp.net,Textbox,Assert,Coded Ui Tests,我对编码UI测试还不熟悉,有人能帮我检索文本框值吗?因为我一直在获取空值。我在我的方法中添加了一个断言,该断言验证文本框的值,但是if继续失败,因为实际数据总是空的。下面是我的示例代码。提前谢谢你的帮助 这是我在CodeUItest类中的测试方法 [TestMethod] public void TBParameterTest() { this.UIMap.ValidateTBValue(); } public void Va

我对编码UI测试还不熟悉,有人能帮我检索文本框值吗?因为我一直在获取空值。我在我的方法中添加了一个断言,该断言验证文本框的值,但是if继续失败,因为实际数据总是空的。下面是我的示例代码。提前谢谢你的帮助

这是我在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也始终为空


谢谢

您可以用两种不同的方法解决此问题:

  • 更好的选择是调整搜索属性以搜索某些唯一标识符(名称、类…)

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

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

    var textValue = controls[index].Text;
    

    并将此值用于断言

    您是否尝试过在uIItemEdit上执行.DrawHighlight()以验证所处理的控件是否正确?我们能看到UIItemEdit的代码吗?@NickRaverty我试着把.DrawHiglight和它指向一个错误的位置。我还想知道为什么我的控件没有automationId属性。uiItemEdit控件似乎引用了我页面中的所有文本框,因此这些文本框没有唯一的名称,因此我无法对其进行搜索。它指向错误的控件,这就是为什么您没有获得正确的值-它从页面上的第一个控件中提取空值,您需要在实际要处理的控件上设置搜索属性。祝你好运@杰巴达尼尔,尼克的建议有用吗?
    var textValue = controls[index].Text;