ページ上に多数の要素が存在するかどうかをチェックしたい場合は、存在しないものがあるかどうかを確認するカスタムエラーメッセージの一覧を表示します。Selenium WebDriver C# - 例外がスローされたときに続きます。
テストケース:
[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;
}
これは動作しますが、しかし、テストは失敗します。テストを続行し、テストの最後にエラーを吐き出す方法が必要です。たとえば、「最初の要素が見つからない」、「3番目の要素が見つかりません」など。
ありがとう。
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);
}
}
これはただ一つの方法ですあなたは何ができるか
これはすばらしく、私はそれを試して実装します - ありがとう! –
問題ありません!どういたしまして。実装に関する質問がある場合は、質問を削除してください –