如何断言事件发生后页面上发生了多处更改?
行为举例我想断言:
我想断言所有这些事情都是在我点击按钮后发生的。我是否真的必须在每个变更的每个断言上编写相同的方法?
答案 0 :(得分:0)
为什么需要为每个断言编写更多方法?您可以使用一种方法来检查元素是否可见,并为每个元素调用一次。
private boolean IsElementVisible(By by)
{
try
{
return driver.FindElement(by).IsDisplayed();
}
catch(NoSuchElementException e)
{
return false;
}
}
private List<By> VerifyElementVisibility(
List<By> expectedVisibile, List<By> expectedInvisible)
{
List<By> failedExpectations = new List<By>();
for (By by in expectedVisible)
{
if(!IsElementVisible(by)
{
failedExpectations.Add(by);
}
}
for (By by in expectedInvisible)
{
if(IsElementVisible(by)
{
failedExpectations.Add(by);
}
}
return failedExpectations;
}
List<By> failedExpectations = VerifyElementVisiblity(visibleElements, invisibleElements);
Assert.IsTrue(failedExpectations.Count == 0,
failedExpectations.Count.ToString() + " elements did not meet expectations");