【问题标题】:Ruby/Watir getting stuck after using "goto"Ruby/Watir 在使用“goto”后卡住了
【发布时间】:2010-12-25 14:41:02
【问题描述】:

我正在使用简单的 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 出现问题。我已经搜索了关于 sn-ps 的信息,但没有返回任何内容。我想要它做的就是加载页面,在那里停留指定时间,然后移动到下一个 url(它用于电视屏幕),没什么复杂的。

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

    begin
        $browser.goto(url)   
    rescue
    end

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

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

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

【问题讨论】:

  • 手动打开页面没有问题?
  • 我建议也将其发布到groups.google.com/group/watir-general
  • 是的,手动工作正常。允许页面加载,然后发出某种内页请求来收集报告数据。显然阻止 Watir 知道页面是否已加载。下面的点击建议看起来不错,如果 hacky 解决方法。

标签: ruby watir goto


【解决方案1】:

【讨论】:

  • 谢谢。这也有助于我的自动化脚本。
【解决方案2】:

我的猜测是该页面上的某些内容使 IE 无法说“我已完成加载此处的所有内容”。

有一个 $browser.click_no_wait 命令和一个 $browser.click!命令,因此,如果您有一个静态页面,其中包含指向您的 url 的链接,您可以 $browser.goto 该页面并 clcik_no_wait 链接。

【讨论】:

  • 不是直接修复,而是修复。干杯。
猜你喜欢
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2014-10-16
  • 2021-11-28
  • 2019-01-08
相关资源
最近更新 更多