Xvfb + Selenium2Library

При запуске UI тестов через Jenkins приходится использовать Xvfb. Перед запуском теста запускается Xvfb. Полностью скрипт запуска теста выглядит так:

 

Не смотря на указанное разрешение экрана 1280х1024, скриншоты которые делает библиотека Selenium2Library размером как будто с экарна 1024х768.

Как добиться нормального разрешения скриншотов?

а что означает как будто? вы не уверены, что разрешение верное?

плюс надо локализировать ошибку, чтобы понять с чем бороться с selenium2library или xvfb

как вы запускаете запускаете ваши тесты, локально или через remotewebdriver?

надо проверить все эти догадки

может быть окно полность не развернуто и его нужно развернуть

может быть механизм захвата экрана не верно работает, надо попробовать съем скриншотов внутренней библиотекой

может быть это настройки xvfb, попробуйте поменять разрешение, битность или номер дисплея 

а дальше надо уже исходить из результатов

к сожалению, у меня нет, тестового стенда сейчас чтобы проверить все эти догадки

а вообще, что плохого что скриншоты не того размера?

Тесты запускаются локально через Jenkins тем скриптом что выше. Окно должно быть полностью развернуто, т.к. я при запуске подключаю профиль Firefox'а. Тоесть если я запускаю вручную то все нормально.

У скриншотов разрешение по ширине 1000 пикселей. Такое же разрешение у них если я не указываю для Xvfb разрешение. У меня есть предположение что Xvfb просто игнорирует те настройки которые я ему даю.

Попробую снять скриншот каким нибудь imagemagick чтобы проверить это.

Проверил Xvfb через imagemagick, с ним все ок. Все таки дело в Firefox. По ходу он не разворачивается на весь экран. Продолжу копать в том же направлении )

Вставил после запуска браузера метод: Maximize Browser Window, но это не дало результата. Firefox почему то упорно не хочет разворачиваться на весь экран.

Снял скриншот imagemagick'ом во время теста:

Для начала покажите код создания драйвера. А еще необходима информация о версии FF, Selenium и ОС, на которой запускаются тесты.

WebDriver запускается методом из библиотеки Selenium2Library для Robot Framework, тобишь не моя писанина. Firefox 22, OS Fedora 19, Selenium 2.33

Получилось развернуть Firefox только костыльным методом:

Но не хотелось бы каждый раз так делать

Возможно, дело в комбинации ОС / браузер. К примеру, на маке некоторые браузеры нельзя развернуть средствами селениума. Не исключено, что та же проблема может наблюдаться и в случае c линуксом. У меня нет соотвествующего окружения, чтобы проверить. Но рекомендую попробовать то же самое на винде, дабы исключить вариант проблемы взаимодействия со средой.

Ну на виндах такой проблемы точно не будет, т.к. там и фреймбуфера нет ) Да и менять линуксы на винды я как то не желаю, только избавился от windows :)

К тому же, метод Maximize Browser Window работает и на линуксе, но только если я сам запускаю тест не под Xvfb. Придется пока работать так, либо применить костыль с xdotool.

Тогда собственно вопрос: зачем вам автоматизация и дженкинс, если вы хотите запускать тесты исключительно на собственной линуксовой тачке? В чем профит? На реальных веб-проектах линукс - большая редкость в плане требований клиента. Опять-таки, test execution на тачке с CI порождает еще больше вопросов.

ну раз не сработал https://github.com/rtomac/robotframework-selenium2library/search?q=maximize&ref=cmdform

значит есть какая-то несовместимость или баг, который лучше бы зарепортить на проект

но все равно, надо попробовать другой вариант через javascript, что лучше чем предложеный вариант

например можно погуглить, http://stackoverflow.com/questions/6306850/how-do-i-automatically-maximize-the-browser-window-when-a-specific-url-of-my-sit

можно еще попробовать через javascript

Спасибо за наводку, надо будет попробовать :) Хотя странно что метод Maximize не сработал.

ну это софт не застрахован от дефектов и ошибок, не факт, что у вас что-то не сработало