在编码的UI测试中断言div中的所有li

问题描述 投票:1回答:1
<div class="validation-summary-errors">
    <span>Please check the following entries:</span>
    <ul>
        <li>Please select a client account</li>
        <li>Please select a beneficiary account</li>
    </ul>
</div>

public virtual T VerifyAmountValidationMessages()
{
    HtmlDiv error = new HtmlDiv(_browserWindow);

    error.SearchProperties[HtmlDiv.PropertyNames.Class] = "validation-summary-errors";
    var errors = error.FindMatchingControls();
    var errorLi = error.GetChildren()[0];
    foreach (var item in errors)
    {
        Assert.IsTrue(item.GetProperty("InnerText").ToString().Contains("Please check the following entries:\r\nPlease select a client account\r\nPlease select a beneficiary account"));
    }
    return (T)this;
}

如何迭代所有lis并断言每个Li的内部文本,使用getChildren我可以单独访问span元素但我想单独访问Li?现在我断言整个文本根本不是正确的方法。

c# coded-ui-tests
1个回答
0
投票

ul元素将是errors.GetChildren()[0];你会让它们绕过它的孩子。

<div class="validation-summary-errors"> 
    <span>Please check the following entries:</span> 
    <ul> 
        <li>Please select a client account</li> 
        <li>Please select a beneficiary account</li> 
    </ul> 
</div> 

public virtual T VerifyAmountValidationMessages()
{
    HtmlDiv error = new HtmlDiv(_browserWindow);
    error.SearchProperties[HtmlDiv.PropertyNames.Class] = "validation-summary-errors"; 
    var errors = error.FindMatchingControls(); 
    var errorul = error.GetChildren()[1];
    foreach (var item in errors
    { 
        // check individual li items
    } 
    return (T)this; 
}

这似乎是一个脆弱的测试,考虑如果对错误的显示方式进行任何更改,您将不得不重写测试。

© www.soinside.com 2019 - 2024. All rights reserved.