我正在运行我的项目的硒测试。我需要声明表格的第一个元素中存在一些文本。
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在第一个元素中?
答案 0 :(得分:0)
这是无效的HTML,ID应该只出现一次而你在循环中使用id="Ssn"
。
修复该问题,然后查看测试代码。您可能需要使用selenium.GetTable
来访问表格数据。