У меня есть набор тестов селена, который запускает много тестов, и при каждом новом тесте он открывает окно браузера поверх любых других открытых мной окон. Очень резкий, работая в местной среде. Любой способ сказать селен или ОС (MAC), чтобы открыть окна в фоновом режиме?
selenium
selenium-webdriver
webdriver
selenium-grid
kevzettler
источник
источник
driver = webdriver.Firefox()
в своем коде, следуйте моему ответу здесь: stackoverflow.com/a/23898148/1515819Ответы:
Есть несколько способов, но это не просто «установить значение конфигурации». Если вы не инвестируете в безголовый браузер, который не удовлетворяет всем требованиям, это будет немного хакером:
Как скрыть окно Firefox (Selenium WebDriver)?
и
Можно ли спрятать браузер в Selenium RC?
Вы можете «предположительно» передать некоторые параметры в Chrome, а именно:
--no-startup-window
Обратите внимание, что для некоторых браузеров, особенно IE, ваши тесты повредят, если они не будут в фокусе.
Вы также можете немного взломать AutoIT, чтобы скрыть окно после его открытия.
источник
Если вы используете веб-драйвер Selenium с Python, вы можете использовать PyVirtualDisplay, оболочку Python для Xvfb и Xephyr.
PyVirtualDisplay требует Xvfb в качестве зависимости. В Ubuntu сначала установите Xvfb:
затем установите PyVirtualDisplay из Pypi:
Пример сценария Selenium на Python в автономном режиме с PyVirtualDisplay:
РЕДАКТИРОВАТЬ Первоначальный ответ был опубликован в 2014 году, и теперь мы на пороге 2018. Как и все остальное, браузеры также продвинулись. Chrome имеет полностью автономную версию, что устраняет необходимость использования каких-либо сторонних библиотек для скрытия окна пользовательского интерфейса. Пример кода выглядит следующим образом:
источник
В Chrome 57 есть возможность передать флаг --headless, что делает окно невидимым.
Этот флаг отличается от --no-startup-window, поскольку последний не запускает окно. Он используется для размещения фоновых приложений, как сказано на этой странице .
Java-код для передачи флага веб-драйверу Selenium (ChromeDriver):
источник
Для запуска без какого-либо браузера вы можете запустить его в автономном режиме.
Я покажу вам один пример в Python, который работает на меня прямо сейчас
Я также добавлю вам немного больше информации об этом на официальном сайте Google https://developers.google.com/web/updates/2017/04/headless-chrome.
источник
Начиная с Chrome 57 у вас беспричинный аргумент:
Безголовый режим Chrome работает на 30,97% лучше, чем версия интерфейса. Другой безголовый драйвер PhantomJS работает на 34,92% лучше, чем безголовый режим Chrome.
PhantomJSDriver
Режим без головы в Mozilla Firefox работает на 3,68% лучше, чем в версии пользовательского интерфейса. Это разочарование, поскольку режим без головы в Chrome обеспечивает> 30% лучшее время, чем в пользовательском интерфейсе. Другой безголовый драйвер PhantomJS работает на 34,92% лучше, чем безголовый режим Chrome. Удивительно для меня, браузер Edge превосходит их всех.
Это доступно из Firefox 57+
Режим без головы в Mozilla Firefox работает на 3,68% лучше, чем в версии пользовательского интерфейса. Это разочарование, поскольку режим без головы в Chrome обеспечивает> 30% лучшее время, чем в пользовательском интерфейсе. Другой безголовый драйвер PhantomJS работает на 34,92% лучше, чем безголовый режим Chrome. Удивительно для меня, браузер Edge превосходит их всех.
источник
Я предлагаю использовать Phantom Js для получения дополнительной информации, вам нужно посетить официальный сайт Phantom
после загрузки PhantomJs.exe вам нужно импортировать в свой проект, как вы можете видеть на картинке ниже. Phantomjs внутри обычного >> Library >> phantomjs.exe
Теперь все, что вам нужно внутри вашего кода Selenium, это изменить строку
Что-то вроде
Вот и все, это сработало для меня. и, безусловно, он будет работать для вас, ура
источник
На окнах вы можете использовать win32gui:
Пример:
Однако есть одна проблема с этим решением - использование метода send_keys заставляет окно появиться. Вы можете справиться с этим с помощью JavaScript, который не показывает окно:
источник
Я использовал этот код для Firefox в Windows и получил ответ: (ссылка здесь )
Но я не проверяю это для других браузеров.
источник
Это может быть в настройках. Вот идентичный код Java.
источник
Это простое решение NodeJS, которое работает в новой версии Sexium 4.x (возможно, также 3.x).
Хром:
Fire Fox:
Все это просто работает в фоновом режиме. Именно то, что мы хотим.
источник
Если вы используете драйвер Chrome, вы можете использовать этот очень простой код: (он работал для меня)
источник
В * nix вы также можете запустить безголовый X-сервер, такой как Xvfb, и указать для него переменную DISPLAY:
Поддельный X сервер для тестирования?
источник
Вот решение .net, которое сработало для меня:
Загрузите PhantomJs здесь http://phantomjs.org/download.html
Скопируйте .exe из папки bin в загрузку и вставьте в папку bin debug / release вашего проекта Visual Studio.
Добавьте это используя
В вашем коде откройте драйвер следующим образом:
источник
Если вы используете Ubuntu (Gnome), одним из простых обходных путей является установка автоматического перемещения окна расширения Gnome: https://extensions.gnome.org/extension/16/auto-move-windows/
Затем установите браузер (например, Chrome) на другое рабочее пространство (например, рабочее пространство 2). Браузер будет тихо работать в другом рабочем пространстве и больше не беспокоить вас. Вы по-прежнему можете использовать Chrome в своем рабочем пространстве без перерыва.
источник
Привет у меня была такая же проблема с моим chromedriver с использованием python и options.add_argument ("headless") не работал для меня, но потом я понял, как это исправить, поэтому я привел его в код ниже
Я надеюсь, что это работает для вас.
источник
Один из способов добиться этого - запустить браузер в автономном режиме. Еще одним преимуществом этого является то, что тесты выполняются быстрее.
Пожалуйста, найдите код ниже, чтобы установить безголовый режим в браузере Chrome.
источник