使用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书的免费版本:
尝试以下浏览器类,它适合我。
Browser::BROWSER.driver.save_screenshot(screenshot)
( 参考 )