1

我正在使用简单的 browser.goto(url) 调用我们的 Microsoft SQL 报告页面。它在第一个 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

不走运,它只是位于第一个网址上。我已经尝试使用 Timeout 类来包装它,即:

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

仍然没有运气,它崩溃了。有谁知道修复,或者如何覆盖 Watir 在执行 goto 时所做的隐式“等待”?

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 回答