2009-12-11 84 views
1

我正在使用簡單的browser.goto(url)調用我們的Microsoft SQL報告頁面。它在第一個網址上做了一個「轉到」,但只是坐在那裏。我目前正在通過命令行運行它。使用「goto」後Ruby/Watir卡住

如果我按Ctrl + C取消它,輸出說:

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(它是用於電視屏幕的),沒有什麼複雜的。

所以我試着放置一個「開始/救援」,即:

begin 
     $browser.goto(url) 
    rescue 
    end 

沒有運氣,它只是坐在第一個網址。我試過使用Timeout類包裝,即:

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

仍然沒有運氣,它崩潰了。有沒有人知道修補程序,或者如何重寫Watir執行goto時隱含的「等待」?

+0

頁面,沒有任何問題打開,當你做手工? – 2009-12-11 14:01:34

+0

我會建議發佈這也http://groups.google.com/group/watir-general/ – 2009-12-11 14:03:41

+0

是的手動工作正常。授予頁面加載,然後進行某種內部頁面請求來收集報告數據。明顯地停止Watir知道頁面是否已經加載。下面的點擊建議看起來像一個很好的,如果hacky的工作。 – Bealer 2009-12-11 18:05:58

回答

2

我的猜測是,該頁面上有些東西讓IE不能說「我在這裏完成了所有的事情」。

有一個$ browser.click_no_wait命令和一個$ browser.click!命令,所以如果你有一個鏈接到你的url的靜態頁面,你可以使用$ browser.goto頁面,並且clcik_no_wait等待鏈接。

+0

不是一個直接的解決方案,但修復非常少。乾杯。 – Bealer 2009-12-11 18:16:45