Можно ли спрятать браузер в Selenium RC?

Я использую Selenium RC для автоматизации некоторых операций браузера, но я хочу, чтобы браузер был невидимым. Это возможно? Как? А как насчет Selenium Grid? Могу ли я также скрыть окно Selenium RC?

88 голосов | спросил Yatendra Goel 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 20:07:53 +0400 2009, 20:07:53

10 ответов


0

Есть несколько вариантов:

  • Вы можете использовать Selenium Grid, чтобы браузер открывался на совершенно другой машине (или виртуальной машине), к которой затем можно подключиться через VNC или Remote Desktop Connection, если вы хотите увидеть браузер. Кроме того, есть еще один вариант: если вы запускаете процесс переднего плана Jenkins на этом удаленном сервере, он может выполнить ваш тестовый проект на рабочем столе.

  • Вы можете запустить Selenium без головы в Linux в XVFB. Я никогда не пытался сделать это и сомневаюсь, что это действительно стоит усилий. http://www.alittlemadness.com/2008/03/05/обкатка селен без головы /

  • Вы можете обернуть Selenium RC в службу Windows. http://support.microsoft.com/kb/137890 . За исключением того, что ограничения разрешений в более поздних версиях Windows, вероятно, не позволят Selenium получить доступ к рабочему столу, как это было в Windows 2000.

  • Другой вариант - использовать что-то вроде WebDriver HTMLUnitDriver, который не запускает «настоящий» браузер. http://code.google.com/p/webdriver/. Также есть опция PhantomJS и Chrome без головы, который вы можете использовать.

  • Конечно, есть также возможность использовать сервис, такой как SauceLabs, где вы можете запускать свои тесты в облаке. После завершения тестов вы можете посмотреть их видео.

ответил Dave Hunt 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 22:04:33 +0400 2009, 22:04:33
0

В Linux вы можете запустить WebDriver в автономном (виртуальном) режиме, чтобы скрыть браузер. Это можно сделать с помощью Xvfb (виртуальный кадровый буфер X).

Вы можете управлять Xvfb напрямую из кода Python, используя xvfbwrapper: https://github.com/cgoldberg/xvfbwrapper

Код Python для запуска без заголовка будет выглядеть следующим образом:

from selenium import webdriver
from xvfbwrapper import Xvfb

display = Xvfb()
display.start()

# now Firefox will run in a virtual display. 
# you will not see the browser.
driver = webdriver.Firefox()
driver.get('http://www.google.com')

print(driver.title)
driver.quit()

display.stop()

Установить зависимости в Debian /Ubuntu:

$ sudo apt-get install xvfb
$ pip install xvfbwrapper
ответил Corey Goldberg 18 Jpm1000000pmWed, 18 Jan 2012 16:48:05 +040012 2012, 16:48:05
0

Мне легко удалось скрыть окно браузера.

Просто установите PhantomJS . Затем измените эту строку:

driver = webdriver.Firefox()

в

driver = webdriver.PhantomJS()

Остальной код не нужно менять, и браузер не откроется. В целях отладки используйте driver.save_screenshot('screen.png') на разных этапах вашего кода.

ответил Stéphane Bruckert 28 Mayam14 2014, 00:11:00
0

+1 для Selenium RC в качестве службы Windows.

Поскольку тесты выполняются полностью скрытно, я думаю, что у вас мало решений, если вы работаете в Windows.

Что бы я сделал, чтобы компьютер в вашей локальной сети был постоянно подключен к сети и работал сервер селена RC. Таким образом, вы используете IP этого компьютера вместо localhost для запуска ваших тестов. Например:

browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")

(учитывая, что это ip компьютера, на котором работает сервер).

Имея эту настройку, вы запускаете свои тесты на своем компьютере, браузеры и окно сервера RC находятся на другом компьютере, и вы возвращаетесь к своему, когда закончите.

ответил Santi 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 14 Sep 2009 08:28:56 +0400 2009, 08:28:56
0

В Linux вы можете запустить тестовый браузер на виртуальном дисплее. Для создания виртуального X-сервера вам понадобится пакет xvfb. На дистрибутивах на основе Debian просто запустите

sudo apt-get install xvfb

Есть хороший инструмент ephemeral-x.sh , которая удобно настроит любую команду для запуска на виртуальном дисплее. Загрузите его и сделайте его исполняемым:

wget https://raw.github.com/jordansissel/xdotool/master/t/ephemeral-x.sh
chmod +x ephemeral-x.sh

Тогда вы можете просто использовать его для запуска сервера Selenium:

./ephemeral-x.sh java -jar selenium-standalone.jar

Все окна браузера, созданные Selenium, теперь будут использовать виртуальный дисплей и будут невидимы для вас.

ответил pixelistik 4 Jpm1000000pmFri, 04 Jan 2013 14:50:19 +040013 2013, 14:50:19
0

Вот так я запускаю свои тесты с maven на рабочем столе Linux (Ubuntu). Я сыт по горло тем, что не могу работать с веб-драйверами Firefox, которые всегда фокусируются.

Я установил xvfb

  

xvfb-run -a mvn clean install

Вот так

ответил Paul Whelan 29 J0000006Europe/Moscow 2012, 16:00:18
0

Во многих случаях PhantomJS не вполне соответствует вашим потребностям, я хотел бы остановиться на опции хромированной головки без головы, упомянутой в ответе Дэйва Ханта.

Chrome 57 только что запустил эту функцию. Вы можете использовать его, передав флаг --headless через ChromeDriver, для получения дополнительной информации смотрите обсуждение в этот вопрос

ответил Marlies 21 PMpFri, 21 Apr 2017 16:37:36 +030037Friday 2017, 16:37:36
0

Существует связанный с PhantomJS проект под названием GhostDriver , предназначенный для запуска экземпляров PhantomJS в Selenium Grid используя протокол проводного веб-драйвера JSON. Это, вероятно, то, что вы ищете, хотя этому вопросу уже 4 года.

ответил djangofan 3 PMpThu, 03 Apr 2014 23:17:02 +040017Thursday 2014, 23:17:02
0

В MacOSX мне не удалось скрыть окно браузера, но, по крайней мере, я понял, как переместить его на другой экран, чтобы он не сильно нарушал мой рабочий процесс. Пока Firefox выполняет тесты, просто щелкните его значок в док-станции, удерживая клавишу Control, выберите «Параметры» и «Назначить для отображения 2».

ответил chetstone 9 J000000Wednesday14 2014, 23:43:35
0
curl -k https://gist.githubusercontent.com/terrancesnyder/995250/raw/cdd1f52353bb614a5a016c2e8e77a2afb718f3c3/ephemeral-x.sh -o ~/ephemeral-x.sh
chmod +x ~/ephemeral-x.sh
~/ephemeral-x.sh TestsStarterCommand

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

ответил Nestor Urquiza 4 PM00000040000002831 2016, 16:32:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132