2009-12-30 4 views

답변

6

WaitUntilComplete가 아약스 호출을 인식하지 못합니다. 뿐만 아니라 그 작업을하기 위해 몇 가지 코드를 삽입하는 방법이 문서 (WaitForAsyncPostBackToComplete에 대한 검색)를 참조하십시오 : WatiN, Ajax and some Extension Methods

HTH, 제론 WaitForComplete가 로딩 페이지 괜찮 언급 한 바와 같이

+0

고맙습니다. 바로 내가 나중에 발견 한 것. 이상한 점은 검색 처음 3 일 동안이 기사를 보지 못한 것입니다. –

11

IE가 사용 중이 아닌 완료되었는지 확인할 수 있습니다.

while (((SHDocVw.InternetExplorerClass)(_ie.InternetExplorer)).Busy) 
     { 
      System.Threading.Thread.Sleep(2000); 
     } 
+0

그것은 내가 올바른로 두 답변을 표시 할 수없는 슬픈하지만 향후 사용을 위해뿐만 아니라 마음에 트릭을 유지합니다 –

+1

+1 조금 회의적 이었지만 Ajax와 완벽하게 작동합니다! 이 팁을 가져 주셔서 감사합니다! :-) –

1

,하지만 작동하지 않습니다 아약스 전화.

다음은 특정 요소가 나타날 것으로 예상되는 상황에서 잘 작동하는 매우 간단한 솔루션입니다. elementId로부터 20 초 후에 페이지에있는, 또는 시간까지 단순히 루프 :

DateTime _startWait = DateTime.Now; 
while (_startWait.AddMilliseconds(20000) > DateTime.Now && !WatiNbrowser.Elements.Exists(elementID)) 
        { 
         System.Threading.Thread.Sleep(200); 
         Application.DoEvents(); 
        } 
+0

STA 스레드에있는 이유는 무엇입니까? 'Application.DoEvents()'를 (를) 호출하는 이유는 무엇입니까? – Odys

+0

실제로 그것은 중복됩니다. 이것은 처음 C#을 시작했을 때 뒤에서 몇 가지 오래된 코드 였고 더 잘 알지 못했습니다. –

관련 문제