2013-04-11 1 views
1

WatiN을 사용하여 웹 사이트를 테스트하고 프로세스를 자동화하고 있습니다. 내가 성공적으로 웹 사이트를 열 수 있지만 문제는 내가 선택 목록에서 옵션을 선택하려고 할 때 발생한다 :Watched N을 사용하여 드롭 다운 목록 테스트

<select id="form:Dropdown" name="form:Dropdown" size="1" title="Select Option"> <option value="0">Select Code</option> 
    <option value="234890/NA/1">23FA4890</option> 
    <option value="237014/NA/1">23FA7014</option> 
</select> 

코드 :

  Settings.AttachToBrowserTimeOut = 240; 
      Settings.WaitUntilExistsTimeOut = 240; 
      Settings.WaitForCompleteTimeOut = 240;  

      browser = new IE(); 
      browser.GoTo(url); 
      browser.WaitForComplete(); 
      //Thread.Sleep(10000); 
      browser.SelectList(Find.ById("form:Dropdown")).WaitUntilExists(); //ERROR OCCURS HERE 
      SelectList dList = browser.SelectList(Find.ById("form:Dropdown")); 
      dList.Select("23FA4890"); 

작동해야처럼이 보이는,하지만 난 계속 "요소가 표시 될 때까지 240 초 동안 대기하는 동안 시간 초과"오류가 발생합니다.

+0

당신이 값을 선택할 수 있습니다 (사용'SelectByValue' 방법)? –

+0

@AdamPlocher SelectList에서 오류가 발생하여 값으로 옵션을 선택하지도 않았습니다. – EvanGWatkins

+0

다른 메모와 마찬가지로 - 더 나은 결과가 나오는지 확인하기 위해'FindByName'을 시도해 보셨습니까? 내가 도움이되지 않을 수도 아래에 답변을 게시 :) –

답변

0

WaitForComplete이 페이지가 완전히로드 될 때까지 이미 차단하려고하므로 WaitUntilExists 번으로 전화해야한다고 생각하지 않습니다. 저는 이것이 당신의 질문에 완전히 대답하지 못한다는 것을 알고 있습니다.하지만 저는 한번도 문제가되지 않았던 1 년 넘게 프로덕션에서 사용하고있는 몇 가지 코드 예제를 보여 드리고자합니다.

참고, 내가 iframe이 내에서 프레임을 잡아 드롭 다운 목록에서 "ID"의 값을 선택 해요 :

Regex regex = new Regex(@"^.*\/globalframeset\.esp.*$"); 
using (var browser = IE.AttachTo<IE>(Find.ByUrl(regex), 12)) 
{ 
    if (browser != null) 
    { 
     browser.AutoClose = false; 

     var iFrame = browser.Frame(Find.ById("GlobalWrapper")); 

     if (iFrame != null) 
     { 
      var frame = iFrame.Frame(Find.ByName("frGlobalNav")); 

      if (frame != null) 
      { 
       frame.TextField(Find.ByName("findtext")).Value = person.MedicalRecordNumber; 

       // This code is setting the DDL called "filtertype" to a value of "ID" 
       frame.SelectList(Find.ByName("filtertype")).SelectByValue("ID"); 

       Regex buttonRegex = new Regex(@"^.*\/go_text\.gif.*$"); 
       frame.Image(Find.BySrc(buttonRegex)).ClickNoWait(); 
      } 
     } 

     browser.BringToFront(); 
    } 
}