【发布时间】:2018-02-23 22:58:09
【问题描述】:
我有一个列表,其中包含我想要断言的信息。我想在网页上的表格中断言
我的代码看起来:
for (var X = 0; X < test.Count; X++)
{
try
{
for (var i = 0; i <= 4; i++)
{
if (GetElement(i).Text == test[X].Type.ToString())
{
switch (test[X].Type)
{
case Enum.Type.X:
[Asserts]
break;
case Enum.Type.Y:
[Asserts]
break;
case Enum.Type.Z:
[Asserts]
break;
default:
break;
}
break;
}
}
break;
}
catch (NoSuchElementException)
{
throw new NoSuchElementException($"text");
}
}
我想要什么:
- 我希望列表中的每一行都执行 if 语句。如果陈述正确,则断言完成。
- 当断言正确时,应该返回并从列表中的第二条记录开始(命名为测试)。
- 如果 if 语句永远不为真,则应该出现 catch (NoSuchElementException)。
列表看起来有4个字段,大部分时候有3条记录,有时4条记录视情况而定。
我希望检查列表中的每条记录。
目前它只检查列表中的第一条记录,然后停止。虽然我希望检查列表中的每条记录。
如果需要更多信息,请告诉我。
【问题讨论】:
-
哇,嵌套层次让人难以阅读。您可以使用调试器跟踪问题吗?
-
我试过但无法用调试器修复它,这就是我在这里问它的原因。
-
break在try的末尾有一个break,这将导致外循环永远无法通过X= 0 -
使用调试器很容易找到
break... -
我希望它在断言失败时停止。
标签: c# selenium-webdriver