WATIN

2011-01-20 6 views
1

으로 새 브라우저 창을 감지 할 수있는 방법은 링크가 새 브라우저 창 (또는 브라우저 탭)에서 열렸는지 테스트하는 것입니까?WATIN

는 업데이트 :

var newBrowserWindow = Browser.AttachTo<IE>(Find.ByTitle(browserTitle)); 
Assert.That(newBrowserWindow.hWnd, Is.Not.EqualTo(existingBrowserWindow.hWnd)); 

내가 페이지를 열하고 링크를 클릭하여 existingBrowserWindow을 사용 :

지금까지 나는 다음과 같은 코드를 사용했다. 그러나 링크가 기존 브라우저에서 새 탭 (targer = _blank를 사용하는 IE의 기본 동작)을 열면 동일한 브라우저 창이므로 동일한 창 핸들이 있습니다. 그렇다면 새 탭을 어떻게 찾을 수 있습니까? 링크가 새 브라우저 창을 열 때 내가 뭘

답변

4
당신의 일부 코드가 ... 도움이 될

,

어쨌든이

using (var newBrowser = WatiN.Core.Browser.AttachTo<IE>(Find.ByTitle("Analytics - Read conversation")) 
{ 
} 

Browser.AttachTo이 문서에 따라 Find.ByUri(), Find.ByTitle()Find.By("hwnd", windowHandle)을 지원합니다. 나는 Find.ByUri()Find.ByTitle() 방법만을 테스트했다.

당신 조치가 새 창을 열 경우 감지 할 경우 내가 아는 한

public bool TryGetNewBrowser(out IE browser, string title) 
{ 
    try 
    { 
     browser = WatiN.Core.Browser.AttachTo<IE>(Find.ByTitle(title)); 
     return true; 
    } 
    catch(WatiN.Core.Exceptions.BrowserNotFoundException) 
    { 
     browser = null; 
     return false; 
    } 
} 

을 할 수있는, 새로운 탭 WatiN에는 지원이 없습니다. 그러나 Internet Explorer의 기본 동작은 새 창에서 새 링크를 여는 것입니다.

+0

안녕하세요, 일부 코드가 포함되도록 게시물을 편집했습니다. 글쎄, 사실은 링크가 동일한 창 대신에 새로운 창에 opend되고 있는지 확인하고자합니다. 기존 브라우저를 찾는 것만으로는 충분하지 않습니다. 링크를 클릭 한 브라우저 창과는 다른 점도 확인해야합니다. – nyn3x

+0

@ nyn3x, 추가 세부 정보를 제공해 주셔서 감사합니다. "새 탭을 어떻게 찾을 수 있습니까?"라는 질문에 "나는 WatiN에서 새 탭을 지원하지 않습니다."라고 대답했습니다. 하지만 당신은 "목표 = IE와 함께 IE의 기본 동작"과 나는 당신이 잘못 생각 (그냥 IE7과 IE8과 함께)라고 생각. –

+0

@ Baptiste-Pernet 종료 - 내 dev-machine IE에 있습니다.) -이 이유 때문일 수 있습니까? 하지만 Chrome은 새 창이 아닌 새 탭에서 target = _blank를 엽니 다. Darn - WatiN에 대해 새로운 탭을 지원하지 않는다고하는 코멘트를 놓쳤습니다. 특히 대부분의 브라우저가 창 대신 탭에 의해 더 많이 구동되기 때문에 특히 그렇습니다. – nyn3x