2009-12-11 6 views
1

Microsoft SQL Reporting 페이지에 대한 간단한 browser.goto (url) 호출을 사용하고 있습니다. 그것은 첫 번째 URL에서 "goto"를 수행하지만 거기에 그냥 앉습니다. 현재 커맨드 라인을 통해 실행 중입니다. I Ctrl + C가 취소하는 경우"goto"를 사용한 후에 Ruby/Watir이 멈추는 경우

, 출력은 말한다 :

C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:506:in `wait': Interrupt 
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:355:in `goto' 
    from screen.rb:37:in `SqlReports' 
    from screen.rb:35:in `each' 
    from screen.rb:35:in `SqlReports' 
    from screen.rb:45 

그래서, 내가 Waitr 문제를 일으키는 페이지에 뭔가를 추측하고있어. 나는 스 니펫에 대해 봤지만 아무것도 가지고 돌아 오지 않았다. 내가하고 싶은 것은 페이지를로드하고, 지정된 시간 동안 거기에 앉아서, 다음 URL (TV 화면 용)로 이동하는 것뿐입니다.

begin 
     $browser.goto(url) 
    rescue 
    end 

행운, 그것은 바로 첫 번째 URL에 앉아 :

그래서 내가 "시작/구조"즉, 배치 시도했습니다. 그리고 나는 Timeout 클래스를 사용하여 랩핑을 시도했다. 즉,

begin 
     Timeout::timeout(30) do 
      $browser.goto(url) 
     end 
    rescue 
    end 

아직 운이 없다. 누구든지 수정을 알고 있습니까, 아니면 Watir이 goto를 할 때 암시적인 "대기"를 재정의하는 방법이 있습니까?

+0

페이지에서 타임 아웃을 사용하여 뛰어난 솔루션은 아무런 문제없이 열립니다? –

+0

http://groups.google.com/group/watir-general/ –

+0

에 게시하는 것이 좋습니다. 그래도 수동으로 잘 작동합니다. 페이지로드가 허용되면 보고서 데이터를 수집하기 위해 일종의 내부 페이지 요청이 수행됩니다. 분명히 Watir이 페이지가로드되었는지 알고 있습니다. 아래의 클릭 제안은 해커가 해결되면 좋은 것 같습니다. – Bealer

답변

2

내 생각 엔 "나는 여기에 모든 것을로드 끝났어요"라고에서 IE를 유지 해당 페이지에 뭔가가 있다는 것입니다.

달러 (A $)의 browser.click_no_wait 명령과 $의 browser.click 있습니다! 명령을 사용하면 URL에 대한 링크가있는 정적 페이지가 있으면 $ browser.goto 페이지를 열고 clcik_no_는 링크를 기다릴 수 있습니다. 당신이 수동으로 할 때

+0

직접적인 수정은 아니지만 덜 수정할 수 있습니다. 건배. – Bealer