使用selenium和Nunit测试如何断言表包含特定文本

时间:2012-09-26 13:07:26

标签: c# selenium nunit

我正在运行我的项目的硒测试。我需要声明表格的第一个元素中存在一些文本。

public void TheUserHasAClaimTest()
{
    //Arrange

    //Act
    driver.Navigate().GoToUrl(baseURL + "/");
    driver.FindElement(By.Id("SSN")).Clear();
    driver.FindElement(By.Id("SSN")).SendKeys("000000000");
    new SelectElement(driver.FindElement(By.Id("stateId"))).SelectByText("Arizona");
    driver.FindElement(By.Id("btnCheckForClaims")).Click();


    Assert.IsTrue(this.driver.FindElement(By.Id("Ssn")).Text.Contains("000000000"));
    driver.FindElement(By.CssSelector("form.form-horizontal > input.btn.btn-primary")).Click();
    driver.Close();

    //Assert
}

这是我试图断言文本存在的地方。

<table class="table table-striped table-bordered">
         <th>Ssn</th>
         <th>State</th>
         <th>Claim Date</th>
        @foreach (ClaimViewModel claimHistory in Model.ClaimsHistory)
         {
             <tr>
                <td id="Ssn">@claimHistory.Ssn.ToString()</td>
                 <td>@claimHistory.StateName</td>
                 <td>@claimHistory.ClaimDate</td>
             </tr>
         }
     </table>

这是我的CSHtml页面。如何断言000000000在第一个元素中?

1 个答案:

答案 0 :(得分:0)

这是无效的HTML,ID应该只出现一次而你在循环中使用id="Ssn"

修复该问题,然后查看测试代码。您可能需要使用selenium.GetTable来访问表格数据。