【发布时间】:2011-12-15 02:06:40
【问题描述】:
我正在使用 Watir 浏览页面并截取我应用程序中某些页面的屏幕截图。
但是,从我的服务器获取页面需要一段时间,并且我得到 Timeout::Error。
为了解决这个问题,我在我的 Watir 浏览器实例中使用了等待,以检查是否存在 id 为 'content' 的 div,并使其等待直到它存在。但是,这需要一些时间,并且页面会在 Watir 浏览器中加载。但加载后,我的主浏览器窗口中出现 Timeout::Error。
这是我的代码:
@pages = Pages.all
browser = Watir::Browser.new
@pages.each do |page|
page_url = app_root_url + 'pages/' + page.id.to_s
browser.goto page_url
Watir::Waiter::wait_until { browser.div(:id, 'content').exists? }
file_save_path = pages_screenshot_path.to_s + page.id.to_s + '.png'
browser.driver.save_screenshot(file_save_path)
end
browser.close
每个页面都包含一个 id 为“内容”的 div。不过,我猜它不会等待。
【问题讨论】:
-
等等,超时错误出现在主浏览器窗口中,不是来自 watir 脚本吗?这意味着浏览器认为它花费了太长时间,这不是 Watir 代码的一个因素。那一定是一个懦弱的服务器或一个疯狂的 Rails 应用程序,或者它试图获取它需要的页面不可用的东西(来自外部站点的一些第三方项目?)
-
我试图从我自己的应用程序中获取一个页面,在我的本地机器上运行。不知道为什么这么久
-
当您手动运行浏览器时它会如何反应?如果一切都在一个系统上,您可能需要使用 perfmon 或类似工具做一些工作,以查看是否有东西正在耗尽所有 cpu 资源或内存或其他东西?
-
我正在尝试使其成为后台进程并查看。谢谢。
-
同样的问题,不能手动运行 Watir?
标签: ruby-on-rails watir watir-webdriver