使用Watir保存屏幕截图

时间:2011-12-03 18:40:19

标签: ruby-on-rails watir watir-webdriver safariwatir

我在Ruby on Rails上使用Watir。

我需要使用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浏览器中加载该元素。但是在我的主浏览器中,我收到错误无法在10秒内加载页面,并且屏幕截图也没有保存。对于什么是错的任何想法?

2 个答案:

答案 0 :(得分:4)

有几个watir宝石:watir(在Windows上驱动IE),safariwatir(驱动器在Mac上驱动器),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

答案 1 :(得分:0)

尝试使用以下浏览器类,它适用于我。

Browser::BROWSER.driver.save_screenshot(screenshot)

reference