1

Microsoft SQL レポート ページへの単純な browser.goto(url) 呼び出しを使用しています。最初の URL で「goto」を実行しますが、そこに留まります。現在、コマンドラインから実行しています。

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

うまくいきません。最初の URL にあるだけです。そして、Timeout クラスを使用してそれをラップしようとしました。

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

それでもうまくいかず、クラッシュします。誰かが修正を知っていますか、または goto を実行するときに Watir が行う暗黙の「待機」をオーバーライドする方法を知っていますか?

4

2 に答える 2

2

私の推測では、そのページには、IEが「ここにすべてをロードし終えた」と言わないようにする何かがあると思います。

$browser.click_no_waitコマンドと$browser.clickがあります!したがって、URLへのリンクがある静的ページがある場合は、そのページに$ browser.gotoを実行し、リンクをclcik_no_waitすることができます。

于 2009-12-11T16:25:15.790 に答える
2

http://watirboy.blogspot.com/2010/07/watir-timeout-handle-browser-hangstuck.htmlでタイムアウトを使用した優れたソリューション

于 2010-07-27T12:20:47.197 に答える