Сохранить скриншот с Watir

Я использую 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 с идентификатором «страница», и я пытаюсь заставить Watir ждать, пока этот элемент загрузится в браузере Watir. Но в моем основном браузере я получаю сообщение об ошибке Невозможно загрузить страницу в течение 10 секунд, и скриншот также не сохраняется. Любая идея о том, что не так?


person rookieRailer    schedule 03.12.2011    source источник


Ответы (2)


Есть несколько драгоценных камней watir: watir (управляет IE в Windows), safariwatir (управляет сафари на Mac), watir-webdriver (управляет всеми популярными браузерами, кроме сафари, во всех популярных операционных системах).

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

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

@browser = Watir::Safari.new

to

@browser = Watir::Browser.new :ff

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

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

person Željko Filipin    schedule 05.12.2011
comment
Я заглянул в файл safariwatir.rb и обнаружил, что в нем нет метода драйвера в классе Browser, необходимого для снятия скриншотов. Вместо этого я пытался использовать watir-webdriver, но просто не могу включить его в свою программу. Прочтите этот пост stackoverflow.com/questions/8365555/. Спасибо за попытку помочь мне. Пожалуйста, дайте мне знать, если вы можете помочь в этом. - person rookieRailer; 06.12.2011
comment
Я рассмотрел ваш другой вопрос, но я понятия не имею, как работает Rails, поэтому я не могу помочь. - person Željko Filipin; 06.12.2011
comment
Я смог решить проблему. Я где-то читал, что невозможность включить драгоценный камень может быть связана с тем, что на моей машине установлено несколько версий ruby. Итак, я удалил все и переустановил все, и все работает нормально. Спасибо. - person rookieRailer; 06.12.2011

Попробуйте следовать классу браузера, у меня это работает.

Browser::BROWSER.driver.save_screenshot(screenshot)

(ссылка)

person amjad    schedule 26.09.2012