2013-10-24 2 views
2

Watin을 사용하여 웹 사이트에 로그인하려고 시도하고 있으므로 세션을 계속 유지하므로 매번 로그인하지 않습니다.Watin 세션을 활성 상태로 유지

그러나 LogIn을 호출 할 때마다 if (browser.ContainsText(isLoggedInClass)) 행은 공개 브라우저에서 볼 수있는 내용을 찾지 못합니다.

문자열을 실제로 html에 포함되어 있는지 확인하려면 string checkHtmltoSeeIfClassExists = browser.Body.Parent.OuterHtml; 행을 추가했습니다.

나는 Watin이 세션을 지속하지 않는 것처럼 보입니다. 누구에게 잘못된 생각이있어?

using WatiN.Core; 

namespace ProjectXYZ 
{ 
    class Navigate 
    { 
     private IE browser; 

     public void LogIn() 
     { 
      const string isLoggedInClass = "gwt-Hyperlink optionLink optionLink_myAccount"; 
      if (browser == null) 
       browser = new IE("https://www.somewebsite.com"); 

      string checkHtmltoSeeIfClassExists = browser.Body.Parent.OuterHtml; 

      if (browser.ContainsText(isLoggedInClass)) 
      { 
       string test = "class found!"; 
      } 
      else 
      { 
       browser.TextField(Find.ByName("username")).Value = xx.un; 
       browser.TextField(Find.ByName("userpass")).Value = xx.pw; 
       browser.Button(Find.ByTitle("Login")).Click(); 
      } 

     } 

    } 

} 
+3

'AttachTo <>'함수를 사용하여 브라우저 세션을 다시 할당 해 보았습니까? 중요한 것은 'WatiN'이 'MTA'를 지원하지 않는다는 것입니다. – Brian

+0

AttachTo <>를 사용하여 작동 중입니다. 이 질문을 답으로 추가하면 받아 들일 것입니다. 고맙습니다. – user3357963

+0

답변이 아래에 추가되었습니다. 내가 도울 수있어서 기뻐. :) – Brian

답변

2

당신이 원하는 메커니즘이 WatiN 프레임 워크에 내장 된 AttachTo<> 기능은 아래

내가 지금까지 가지고있는 코드입니다. WatiN은 single-threaded apartment state 만 지원하므로 세션을 수동으로 관리해야합니다.

위의 링크는 'AttachTo <'을 (를) 사용하는 코드 예제가 있지만 철저히하기 위해 아래에 하나도 제공해 드렸습니다.

관련 문제