0

我有一个硒测试,我正在我的项目上运行。我需要断言某些文本存在于表格的第一个元素中。

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 在第一个元素中?

4

1 回答 1

0

那是无效的 HTML,ID 应该只出现一次,并且您正在id="Ssn"循环使用。

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

于 2012-09-26T14:01:11.003 回答