2017-02-20 4 views
0

Imは以前はJavaで動作していましたが、C#でいくつかのテストを設定する必要があります。C#Selenium WebDriverでログインクッキーを待つ方法は?

ログインテストでは、ログインクッキーが設定されるのを待っている待機メソッドがあります。

Javaで私はこのようなことをすることはできますが、C#で同じものを作成することはできません。誰でもこのコードをC#に変換できますか? C#ので

public void getTokenCookie(){ 
    try { 
     wait.until(
       new ExpectedCondition<Cookie>() { 
        @Override 
        public Cookie apply(WebDriver webDriver) { 
         Cookie tokenCookie = driver.manage().getCookieNamed("nameOfCookie"); 
         if (tokenCookie != null) { 
          System.out.println("\nToken Cookie added: " + tokenCookie); 
          return tokenCookie; 
         } else { 
          System.out.println("waiting for cookie.."); 
          return null; 
         } 
        } 
       } 
     ); 

    } catch (Exception e){ 
     System.out.println(e.getMessage()); 
     fail("Failed to login, no cookie set"); 
    } 
} 

答えて

1

私は上記はこのようなものになりますと信じて:DOTNETバインディングで

public Cookie GetTokenCookie() 
     { 
      var webDriver = new ChromeDriver(); //or any IWebDriver 

      var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(10)); 

      Cookie cookie = default(Cookie); 

      try 
      { 
       cookie = wait.Until(driver => 
       { 
        Cookie tokenCookie = driver.Manage().Cookies.GetCookieNamed("nameOfCookie"); 
        if (tokenCookie != null) 
        { 
         Console.WriteLine("\nToken Cookie added: " + tokenCookie); 
         return tokenCookie; 
        } 
        else 
        { 
         Console.WriteLine("waiting for cookie..."); 
         return null; 
        } 
       }); 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine($"{e.Message}"); 
      } 

      return cookie; 
     } 

WebDriverWait.Until<T>を消費するときExpectedConditionsが必要とされていませんが。あなたの状態のためにちょうどFunc<IWebDriver, T>を送ることができます。

Untilが条件を満たすことに失敗した場合、設定されている無視された例外タイプのリストをチェックして投げてしまうことも注目に値する。 - Details on configuring these

ドットネットバインディングでクッキーを取得する方法の詳細については、ICookieJarインターフェイスを参照してください。

一般的にドットネットバインディングを使用してカスタムを待つことに関する追加情報はhereです。

希望すると便利です。

+0

本当にありがとう、説明とコードスニペットジョーダンのために! –

関連する問題