Ruby / Watir在使用“goto”后卡住了

时间:2009-12-11 09:55:03

标签: ruby watir goto

我正在使用简单的browser.goto(url)调用我们的Microsoft SQL报告页面。它在第一个网址上“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问题。我用谷歌搜索了大约片段,但没有回来。我想要它做的就是加载页面,在那里坐一段指定的时间,然后移动到下一个网址(这是电视屏幕),没什么复杂的。

所以我尝试过“开始/救援”,即:

    begin
        $browser.goto(url)   
    rescue
    end

没有运气,它只是坐在第一个网址上。我尝试使用Timeout类包装它,即:

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

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

2 个答案:

答案 0 :(得分:2)

我的猜测是,该网页上有一些内容让IE不会说“我已经完成了在这里加载所有内容”。

有一个$ browser.click_no_wait命令和一个$ browser.click!命令,所以如果你有一个带有你网址链接的静态页面,你可以$ browser.goto那个页面和clcik_no_wait链接。

答案 1 :(得分:2)