3

我正在将 Watir 与 Ruby on Rails 一起使用。

我需要使用 Watir 保存几个页面的屏幕截图。我已经设法让我想在浏览器中打开的页面显示,但还不能保存屏幕截图。这是我的代码:

@browser = Watir::Safari.new
folios_screenshot_path = Rails.root.join('screenshots/')
@page = Page.find(5)
cur_url = root_url + 'pages/' + @page.id.to_s
@browser.goto cur_url
@browser.div(:id => "page").wait_until_present
@browser.driver.save_screenshot(pagess_screenshot_path + '/' + @page.id.to_s + '.png')
@browser.close

在我加载的页面中,有一个 id 为“page”的 div 元素,我试图让 Watir 等到该元素加载到 Watir 浏览器中。但是在我的主浏览器中,我收到错误Unable to load page in 10 seconds,并且屏幕截图也没有保存。知道出了什么问题吗?

4

2 回答 2

4

有几个 watir gem:watir(在 windows 上驱动 IE)、safariwatir(在 mac 上驱动 safari)、watir-webdriver(在所有流行的操作系统上驱动除 safari 之外的所有流行浏览器)。

您正在使用 safariwatir gem,但您正在尝试使用 watir-webdriver 的driver.save_screenshot. 我建议您使用 Firefox 进行屏幕截图。

只需安装 Watir-webdriver gem 并更改

@browser = Watir::Safari.new

@browser = Watir::Browser.new :ff

有关更多信息,请阅读我的 Watir 书的免费版本:

https://github.com/zeljkofilipin/watirbook/downloads

于 2011-12-05T11:47:52.897 回答
0

尝试以下浏览器类,它对我有用。

Browser::BROWSER.driver.save_screenshot(screenshot)

参考

于 2012-09-26T09:46:07.640 回答