watir-webdriver черные скриншоты - PullRequest
5 голосов
/ 01 ноября 2011

Я использую watir-webdriver для навигации по своему веб-сайту и получения снимков экрана в разных браузерах.

Иногда снимки экрана, сделанные в IE, получаются правильного размера, но окрашены полностью в черный цвет.Тесты Firefox, которые запускаются одновременно, выглядят хорошо.

browser.driver.save_screenshot(screenshot_dir)

Как только я удаленного рабочего стола к компьютеру, на котором выполняются тесты, скриншоты IE снова выглядят нормально.Через некоторое время после выхода из удаленного рабочего стола скриншоты IE снова становятся черными.

Я запускаю эти тесты на экземпляре Windows Server, работающем на ec2.

Ответы [ 3 ]

5 голосов
/ 01 ноября 2011

На основании вашего комментария, что удаленный доступ к машине на некоторое время решает проблему ... отключите заставку на этом поле.Я не уверен, как (если вообще) функции скриншотов в IE и FF отличаются, но стоит потратить время, которое потребуется, чтобы проверить изменения.

Редактировать: я все еще чувствую, что это настройки windows / powerПохоже, что это связано с тем, как вы входите в окно, но я не знаю, что конкретно это может быть.Я попробовал программный подход ниже vvv.

1 голос
/ 05 ноября 2011

Из того, что вы говорите, похоже, что система Windows автоматически блокируется, как и должно быть. Это объясняет, почему снимки экрана работают нормально при удаленном входе, а затем становятся черными через несколько минут, когда заставка включается и блокирует вашу систему.

Если система Windows заблокирована, снимки экрана будут затемнены. Это функция безопасности Windows.

Мне было бы интересно узнать, действительно ли FF делает снимки экрана на заблокированной системе.

0 голосов
/ 03 ноября 2011

Вот код, который я использую для захвата скриншотов (Watir-Webdriver, Cucumber). Я использую удаленные виртуальные машины Windows XP для своих тестовых окон и не сталкивался с проблемой при использовании Firefox или Internet Explorer.

Мы обнаружили, что при просмотре журнала со встроенным снимком экрана он, похоже, не работает в IE - поэтому вы должны использовать Firefox для просмотра. Это base64, так что, похоже, нет логической причины для этого.

After do |scenario|
   if scenario.failed?
      encoded_img = @browser.driver.screenshot_as(:base64)
      embed("data:image/png;base64,#{encoded_img}", 'image/png') 
   end #
end
...