2014-09-03 2 views
0

Find.ByTitle 메서드에 문제가 있습니다. 내 코드는 다음과 같습니다 Watin 제목으로 찾기

if (IE.Exists<IE>(Find.ByTitle(FirstLinkText))) 
{ 
    mainPage = Browser.AttachTo<IE>(Find.ByTitle(new Regex(FirstLinkText))); 
} 
else 
{ 
    browser = new IE(); 
} 

FirstLinkText가 예상대로 작동하고 브라우저 페이지가 존재하는 경우 if 문을 입력합니다 예를 들어, "제품 및 기금 권장 사항"인 경우

. 어떤 이유로 FirstLinkText가 "Fund Recommendations"인 경우 제목이있는 페이지가 없더라도 "제품 및 기금 권장 사항"이라는 제목의 페이지가있는 경우에도 if 문을 입력합니다.

마치 Find.ByTitle() 메서드가 모든 페이지를 확인하는 것처럼 보입니다. 포함 모든 페이지가 전달되는 문자열 대신 전달되는 문자열이 전달되는 문자열의 정확한 값입니다.

너무 혼란 스럽다면 큰 소리로 말하면 더 간단하게 만들 수 있습니다.

편집 : 내가 정반대로 그렇게하면 완벽하게 작동한다고 말하면됩니다. 더 많은 인상을주는 것은 .Contains() 작업에 더 가깝습니다. ByTitle 방법에 대한 메타 데이터에서

답변

0

는 그것이 string.Contains() 방법과 유사하다 따라서

// Parameters: 
// title: 
//  The title to match partially. 

을 말한다. 다음을 사용하여 끝낼 수 있습니다.

if (IE.Exists<IE>(Find.By("Title", FirstLinkText))) 
{ 
    mainPage = Browser.AttachTo<IE>(Find.ByTitle(new Regex(FirstLinkText))); 
} 
else 
{ 
    browser = new IE(); 
} 

이 방법은 더 자세하고 정확한 내용을 확인했습니다.

1

또한 람다 식을 사용하는 코드 아래에 시도 할 수 있습니다

if (IE.Exists<IE>(Find.By("Title", FirstLinkText))) 
{ 
    mainPage = Browser.AttachTo<IE>(Find.ByTitle(title => title.Equals(FirstLinkText)); 
} 
else 
{ 
    browser = new IE(); 
}