Как настроить webdiver для выполнения действий в фоновом режиме?

В настоящее время я работаю в области контроля качества автоматизации. Наш проект с использованием Java: jbehave, thucydides, selenium. Мы работаем в ОС Ubuntu.

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

Мы пробовали Phantomjs, он работает неправильно, не может найти элементы и т. д. А также запуск тестов на виртуальной машине с использованием vagrant у нас не работает (по причинам, характерным для компании).

Это нормально, если драйвер Chrome возьмет на себя активное окно при его запуске, если он будет продолжать выполнять различные действия в фоновом режиме. Странно, но в моем предыдущем проекте (windows, c#, mstest) chromedriver вел себя именно так без дополнительной настройки. Пожалуйста, помогите, я знаю несколько других команд, у которых есть эта проблема. Похоже, эта проблема только на Mac и Linux.


person volnoboy    schedule 23.07.2014    source источник
comment
Можете ли вы получить выделенную машину (машины), которая запускает ваши тесты? Я почти уверен, что мне никогда не приходилось фокусироваться на Chrome, когда я запускал свои тесты.   -  person SiKing    schedule 23.07.2014
comment
Мне нужно отлаживать тест локально. Вместо критики и -1 мой вопрос просто помогите. Попробуйте сделать это с помощью моей установки.   -  person volnoboy    schedule 23.07.2014
comment
Я не понимаю ваших комментариев: я должен прекратить все делать и мне нужно отлаживать тест локально. Ваш вопрос предполагает, что вы делаете что-то не так, недовольны этим и хотите, чтобы мы это исправили, не имея конкретной информации о том, что вы на самом деле делаете. Это сайт, помогающий решить проблемы с программированием (кодом), поэтому -1.   -  person SiKing    schedule 23.07.2014
comment
Зачем бы я задавал этот вопрос, если бы у меня была выделенная машина? Просто подумай об этом! Это ваша проблема, если вы не можете понять мои вопросы, потому что они ясны. Вы никогда не выполняли отладку своих тестов? Прежде всего, эта платформа создана для того, чтобы задавать вопросы, когда вы делаете что-то не так. Во-вторых, перед публикацией здесь я поговорил со многими командами в моей компании и даже в разных странах. У них у всех есть эта проблема, если они используют Mac или Ubuntu.   -  person volnoboy    schedule 23.07.2014


Ответы (2)


Ответ удален. Я воспроизвел вашу ошибку, и данное решение не работает.

person Aitor    schedule 19.09.2014
comment
Какая? Объясните пожалуйста! - person volnoboy; 22.09.2014

После долгого решения этой проблемы я наконец нашел хорошее решение. Эта проблема все еще остается на уровне ChromeDriver, поэтому, если есть какие-либо обновления на этой стороне, дайте мне знать.

Самый простой способ запустить тесты в Ubuntu в фоновом режиме — использовать VNC Server. Вот шаги, которые вы должны выполнить:

  1. Установите сервер vnc из терминала Ubuntu:

    sudo apt-get install vnc4server

  2. Запустите сервер с любым номером (я использую 7). В первый раз введите пароль для vnc-сервера (Запомните его!).

    vncсервер: 7

  3. Чтобы запустить сервер в полноэкранном режиме, добавьте в последнюю команду «геометрию» с вашим разрешением экрана, например:

    vncserver:7 -геометрия 1920x1080

  4. Скачайте какой-нибудь VNC Viewer. Я использую реальный VNC.

  5. Перейдите в программу просмотра Real vnc, запустите новое подключение и введите:

    VNC-сервер: localhost:7

    Шифрование: предоставить выбор серверу VNC

  6. Нажмите «Подключиться» и введите пароль своего vnc-сервера (тот, что был на шаге 2).

  7. Должно открыться новое окно, откройте в нем новый терминал.

  8. Запустите тест из терминала. Я использую проект java maven, поэтому для меня он работает так. Перейдите в папку проекта и запустите: mvn clean install

Если вы хотите просто запустить тест в скрытом режиме, используя только терминал (без открытия vncviewer), используйте эту команду:

путь/к/проекту cd

xterm -display localhost:7 -e mvn чистая установка

Если вы хотите остановить сервер: vncserver -kill :7

Надеюсь, это поможет многим из вас.

person volnoboy    schedule 08.09.2014