0

作成したテストを実行するためにセレンを使用しています。エラー処理を開始したいと思います。見つからなかった要素を取得して"Element start could not be found"、エラー ログのように表示できるようにしたいと考えています。これができない場合は、例外が発生したコード行全体を出力したいと思います。

これを行う方法がわかりません。現時点では、各テストを try キャッチでラップするだけですCouldn't find elementが、これは非常に広範であり、検出できなかった要素を絞り込むことはできません。

私のセッション設定

private string excelId = CommonMethods.ExcelOfficeVersion();
private const string AppDriverUrl = "http://127.0.0.1:4723";
private static WindowsDriver<WindowsElement> excelSession;

System.Web.Caching.Cache cache = new System.Web.Caching.Cache();
xl.Workbook WB;
public static bool skipTearDown = false;
WindowsElement create;
WindowsElement blankWorkBook;

public static DesiredCapabilities appCapabilities = new DesiredCapabilities();
[TestInitialize]

public void SetUp()
{

    try
    {


        appCapabilities.SetCapability("app", excelId);

        var initialSession = new WindowsDriver<WindowsElement>(new Uri(AppDriverUrl), appCapabilities);

        var capabilities = new DesiredCapabilities();
        capabilities.SetCapability("app", "Root");
        excelSession = new WindowsDriver<WindowsElement>(new Uri(AppDriverUrl), capabilities);

        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        CommonMethods.keyCheck(excelSession);
        //blankWorkBook = excelSession.FindElementByName("Blank workbook");

        //cache.Insert("Create", create);

        CommonMethods.checkCreateExcel();

    }
    catch (Exception)
    {

        CommonMethods.ExceptionHandler("WinApp Driver failed to load Excel", new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), excelSession);
    }

}

これが私のコードの例です

try
{
    excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
    excelSession.FindElementByName("Blank workbook").Click();

    excelSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
    excelSession.FindElementByName("Create").Click();

    skipTearDown = true;
}
catch (Exception)
{
    CommonMethods.ExceptionHandler("Couldn't find element", new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), excelSession);
}

別の典型的なテスト

public void newExcelWorkbook()
{
    try
    {
        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        excelSession.FindElementByName("Blank workbook").Click();
        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        excelSession.FindElementByName("Create").Click();
        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        excelSession.FindElementByName("New").Click();
        CommonMethods.IsElementDisplayed(excelSession, new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), "CreateErrorIcon", "Error appeard while selecting the New button");
        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        excelSession.FindElementByName("E  Sample Data").Click();
        CommonMethods.IsElementDisplayed(excelSession, new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), "CreateErrorIcon", "Error appeard while selecting the E Sample Data button");
        Thread.Sleep(4000);
        excelSession.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
    }
    catch (Exception)
    {
        CommonMethods.ExceptionHandler("Couldn't find element", new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), excelSession);
    }
    TearDown();

}
4

1 に答える 1