페이지에 여러 요소가 있는지 확인하고 어떤 요소도없는 경우 현재없는 오류 메시지 목록을보고 싶습니다. . 순간 Selenium WebDriver C# - 예외가 throw 된 경우 계속 진행
나는이 :테스트 케이스 :
[Test]
public void CheckAllElementsArePresent()
{
Assert.IsTrue(Results.CheckFirstElement());
Assert.IsTrue(Results.CheckSecondElement());
Assert.IsTrue(Results.CheckThirdElement());
}
프레임 워크 :이 중 하나라도 실패 할 경우
public static bool CheckFirstElement()
{
var results = Driver.Instance.FindElement(By.CssSelector("firstElementSelector']"));
if (results == null)
{
throw new Exception("Cannot find first element");
}
var attr = results.GetAttribute("id");
if (attr == null)
{
throw new Exception("Cannot find first element");
}
if (attr.Contains("someTextIWantToFind"))
{
return true;
}
return false;
}
이 작동하지만, 테스트가 실패합니다. 테스트를 계속 실행하고 테스트가 끝날 때 오류가 나올 수있는 방법이 필요합니다. 예 : "첫 번째 요소를 찾을 수 없습니다.", "세 번째 요소를 찾을 수 없습니다."
감사합니다.
public static string CheckFirstElement()
{
var results = Driver.Instance.FindElement(By.CssSelector("firstElementSelector']"));
if (results == null)
{
return "Cannot find first element";
}
var attr = results.GetAttribute("id");
if (attr == null)
{
return "Cannot find id attribute of first element";
}
if (!attr.Contains("someTextIWantToFind"))
{
return "Cannot find the text in first element";
}
return null;
}
는 다음 주 시험에서 발견 된 오류를 수집 :
[Test]
public void CheckAllElementsArePresent()
{
var errors = new List<string>();
var error = Results.CheckFirstElement();
if(error != null)
errors.Add(error);
error = Results.CheckSecondElement();
if(error != null)
errors.Add(error);
error = Results.CheckThirdElement();
if(error != null)
errors.Add(error);
if(errors.Any())
{
//Output to console
var errorString = string.Join(";", errors);
Console.Writeline(errorString);
//Fail the test
Assert.Fail(errorString);
}
}
이것은 단지 하나의 방법입니다 당신이 무엇을 할 수 있는지
이것은 멋지게, 나는 그것을 시도하고 구현할 것이다 - 고마워! –
문제가 없습니다! 천만에요. 구현에 대해 궁금한 점이있는 경우 질문을 삭제하면 될 때마다 답변 해 드리겠습니다. –