【发布时间】: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 时所做的隐式“等待”?
【问题讨论】:
-
手动打开页面没有问题?
-
是的,手动工作正常。允许页面加载,然后发出某种内页请求来收集报告数据。显然阻止 Watir 知道页面是否已加载。下面的点击建议看起来不错,如果 hacky 解决方法。