我在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秒内加载页面,并且屏幕截图也没有保存。对于什么是错的任何想法?
答案 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书的免费版本:
答案 1 :(得分:0)