Получение черных изображений с помощью selenium.captureScreenshot - PullRequest
2 голосов
/ 26 февраля 2010

Я выполняю тесты на селен с помощью testng, которые запускаются в удаленной системе с Selenium RC через Hudson (с ssh-соединением). Удаленная система - Windows XP с установленным MKS Toolkit, следовательно, ssh. Тесты НЕ выполняются как служба Windows.

Я пытался использовать методы captureScreenshot и captureEntirePageScreenshot. Первый всегда дает черное изображение. Второй создает правильный снимок экрана, но он работает только на Firefox, и наши тесты обычно проходят на Firefox и дают сбой в других браузерах, поэтому крайне важно делать снимки экрана для других браузеров (в основном IE и Safari). Тесты выполняются параллельно, при этом одновременно открывается много окон браузера. Я не уверен, является ли это причиной проблемы. Любые мысли будут оценены.

Ответы [ 3 ]

2 голосов
/ 26 февраля 2010

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

Последняя работа - обновление Snapsie для работы в IE. В блоге http://blog.codecentric.de/en/2010/02/remote-screenshots-mit-selenium-und-dem-robot-framework/ есть сообщение, в котором объясняется, что произошло.

Я заметил, что если экран не активен, то есть включилась заставка, он может создавать черные скриншоты.

Edit:

Я только что подумал. Вы всегда можете запустить Castro , чтобы записать видео ваших тестов, а затем посмотреть его воспроизведение. Это то, что SauceLabs использует для запуска Selenium в облаке.

1 голос
/ 27 июля 2014

После настройки автоматического входа в Windows и запуска процесса не в качестве службы Windows я обнаружил, как решить проблему Удаленный рабочий стол с черными снимками экрана для IEDriverServer.exe, создав пакетный файл, который отключает RDP, вместо закрытия сеанса RDP с помощью обычной кнопки X:

%windir%\system32\tscon.exe %SESSIONNAME% /dest:console

Подробнее см. Здесь: https://stackoverflow.com/a/24529629/658497

(хотя я бы предпочел, чтобы был способ запустить его как действие по умолчанию при завершении сеанса RDP с помощью кнопки X Windows).

1 голос
/ 17 марта 2010

Напишите метод для этого и назовите его там, где вам нужно сделать снимок экрана. Используйте пакет java.awt, который использовался в селене. Например, проверьте этот сайт

...