Сохранить скриншот с помощью Watir - PullRequest
3 голосов
/ 03 декабря 2011

Я использую 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

На странице, которую я загружаю, есть элемент div с идентификатором 'page', и я пытаюсь заставить Watir ждать, пока этот элемент загрузится в браузер Watir.Но в моем главном браузере появляется ошибка Невозможно загрузить страницу в течение 10 секунд , и снимок экрана также не сохраняется.Есть идеи, что случилось?

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

Существует несколько жемчужин watir: watir (использует IE для Windows), safariwatir (использует safari для Mac), watir-webdriver (использует все популярные браузеры, кроме safari во всех популярных операционных системах).

Вы используете самоцвет safariwatir, но пытаетесь сохранить скриншот с помощью watir-webdriver's driver.save_screenshot. Я бы посоветовал вам сделать снимок экрана с Firefox.

Просто установите гем watir-webdriver и измените

@browser = Watir::Safari.new

до

@browser = Watir::Browser.new :ff

Для получения дополнительной информации, прочитайте бесплатную версию моей книги Watir:

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

0 голосов
/ 26 сентября 2012

Попробуйте следующий класс браузера, он работает для меня.

Browser::BROWSER.driver.save_screenshot(screenshot)

( ссылка )

...