Xvfb + Selenium2Library

screenshot
Теги: #<Tag:0x00007fedbc2cdce0>

(rmerkushin) #1

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

 

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

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


(Mykhailo Poliarush) #2

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

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

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

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

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

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

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

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

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

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


(rmerkushin) #3

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

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

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


(rmerkushin) #4

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


(rmerkushin) #5

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

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


(Sergey Korol) #6

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


(rmerkushin) #7

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


(rmerkushin) #8

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

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


(Sergey Korol) #9

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


(rmerkushin) #10

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

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


(Sergey Korol) #11

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


(Mykhailo Poliarush) #12

ну раз не сработал 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


(Mykhailo Poliarush) #13

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


(rmerkushin) #14

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


(Mykhailo Poliarush) #15

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