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

Вопрос:

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

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

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

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

Лучший ответ:

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

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

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

    sudo apt-get install vnc4server

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

    vncserver: 7

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

    vncserver: 7 -geometry 1920×1080

  4. Загрузите несколько VNC Viewer. Я использую Real VNC.

  5. Перейдите в Real vnc viewer, запустите новое соединение и введите:

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

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

  6. Нажмите connect и введите пароль vnc-сервера (один из шагов 2).

  7. Необходимо открыть новое окно, открыть в нем новый терминал.

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

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

cd path/to/project

xterm -display localhost: 7 -e mvn clean install

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

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

Ответ №1

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

Оцените статью
TechArks.Ru
Добавить комментарий