2017-02-20 3 views
0

Im только работал с Java раньше, но вам нужно настроить некоторые тесты на C#.Как подождать входа в cookie в C# Selenium WebDriver?

В тесте входа в систему мне нравится иметь метод ожидания, ожидающий установки cookie для входа в систему.

В Java я могу сделать что-то подобное, но не могу создать то же самое на 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

В C# я считаю, что выше будет выглядеть примерно так:

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; 
     } 

В Dotnet привязок, ExpectedConditions не требуется при употреблении WebDriverWait.Until<T>. Вы можете просто отправить Func<IWebDriver, T> для вашего состояния.

Следует также отметить, что если Until не отвечает условиям, он будет проверять список сконфигурированных игнорируемых типов исключений перед металированием. - Details on configuring these

Для получения дополнительной информации о получении файлов cookie с привязками к dotnet, ознакомьтесь с интерфейсом ICookieJar.

Дополнительную информацию о пользовательских ожиданиях с привязками к сетке в целом можно найти here.

Надеюсь, это поможет!

+0

Большое спасибо за объяснение и фрагмент кода Иордании, действительно оцененный! –

Смежные вопросы