使用Watir保存屏幕截图

我在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秒内加载页面 ,并且屏幕截图也没有保存。 什么是错的?

有几个watirgem: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

尝试以下浏览器类,它适合我。

 Browser::BROWSER.driver.save_screenshot(screenshot) 

( 参考 )