Czy można ukryć przeglądarkę w Selenium RC?

Używam Selenium RC do automatyzacji niektórych operacji przeglądarki, ale chcę, aby przeglądarka była niewidoczna. Czy to możliwe? Jak? A co z siatką Selenową? Czy Mogę też ukryć okno Selenium RC?

Author: Stéphane Bruckert, 2009-09-13

11 answers

Istnieje kilka opcji:

  • Możesz użyć Selenium Grid, aby przeglądarka została otwarta na zupełnie innej maszynie (lub maszynie wirtualnej), z którą możesz się połączyć za pomocą VNC lub połączenia pulpitu zdalnego, jeśli chcesz zobaczyć przeglądarkę. Inna opcja: jeśli uruchomisz proces pierwszoplanowy Jenkins na zdalnym serwerze, może on wykonać Twój projekt testowy na pulpicie.

  • Selenium można uruchomić "bez głowy" na Linuksie w XVFB. Nigdy nie próbowałem robić to i wątpliwość, że to naprawdę warte wysiłku. http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

  • Możesz owinąć Selenium RC w usługę Windows. http://support.microsoft.com/kb/137890 . Z tym wyjątkiem, że ograniczenia uprawnień w późniejszych wersjach windows prawdopodobnie uniemożliwią Selenium dostęp do pulpitu, tak jak Windows 2000 używany do tego celu.

  • Inną opcją byłoby użycie czegoś takiego jak WebDriver HTMLUnitDriver, który nie uruchamia "prawdziwej" przeglądarki. http://code.google.com/p/webdriver /. Istnieje również opcja PhantomJS, a także "bezgłowy Chrom", którego możesz użyć.

  • Oczywiście istnieje również możliwość skorzystania z usługi takiej jak SauceLabs, gdzie można uruchomić testy w chmurze. Po zakończeniu testów możesz obejrzeć film z ich uruchomieniem.

 84
Author: Dave Hunt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-19 20:25:01

W Linuksie można uruchomić WebDriver na bezgłowym (wirtualnym) wyświetlaczu, aby ukryć przeglądarkę. Można to zrobić za pomocą Xvfb (x virtual framebuffer).

Możesz sterować Xvfb bezpośrednio z kodu Pythona za pomocą xvfbwrapper: https://github.com/cgoldberg/xvfbwrapper

Kod Pythona do biegania bez głowy wyglądałby tak:

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()

Zainstaluj zależności na Debianie/Ubuntu:

$ sudo apt-get install xvfb
$ pip install xvfbwrapper
 55
Author: Corey Goldberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 00:02:04

Udało mi się łatwo ukryć okno przeglądarki.

Po prostu Zainstaluj PhantomJS . Następnie zmień tę linię:

driver = webdriver.Firefox()

Do:

driver = webdriver.PhantomJS()

Reszta kodu nie będzie musiała być zmieniana i Żadna przeglądarka się nie otworzy. Do celów debugowania użyj driver.save_screenshot('screen.png') na różnych etapach kodu.

 19
Author: Stéphane Bruckert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-27 20:11:00

+1 dla Selenium RC jako usługi windows.

Za to, że testy są całkowicie ukryte, myślę, że nie masz zbyt wielu rozwiązań, jeśli jesteś na Windowsie.

Co bym zrobił, żeby komputer w Twojej sieci LAN był cały czas online i miał uruchomiony serwer RC selenium. Więc używasz adresu IP tego komputera zamiast localhost do uruchamiania testów. Na przykład:
browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")

(biorąc pod uwagę, że jest to adres ip komputera z serwerem).

Mając taką konfigurację, uruchamiasz twoje testy na twoim komputerze, przeglądarki i okno serwera RC są na innym komputerze i wróć do swojego po wykonaniu.

 13
Author: Santi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-14 04:28:56

Na Linuksie można uruchomić przeglądarkę testową na wirtualnym wyświetlaczu. Do utworzenia wirtualnego serwera X potrzebny będzie pakiet xvfb. Na dystrybucjach opartych na Debianie po prostu uruchom

sudo apt-get install xvfb

Jest ładne narzędzie ephemeral-x.sh to wygodnie skonfiguruje dowolne polecenie do uruchomienia na wirtualnym wyświetlaczu. pobierz go i wykonywalny:

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

Następnie możesz go po prostu użyć do uruchomienia serwera Selenium:

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

Wszystkie okna przeglądarki utworzone przez Selenium będą teraz używać wirtualny wyświetlacz i będzie dla Ciebie niewidoczny.

 12
Author: pixelistik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-23 20:03:20

Jeśli korzystasz z systemu Windows, jedną z opcji jest Uruchomienie testów na innym koncie użytkownika . Oznacza to, że przeglądarka i serwer java nie będą widoczne dla Twojego konta.

 4
Author: Igor Brejc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-17 18:16:16

Tak uruchamiam testy z maven na pulpicie Linuksa (Ubuntu). Mam dość nie bycia w stanie pracować z firefox webdriver zawsze biorąc ostrość.

Zainstalowałem xvfb

Xvfb-run-a MVN clean install

Thats it

 3
Author: Paul Whelan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 12:00:18

W wielu przypadkach PhantomJS nie do końca odpowiada twoim potrzebom, chciałbym rozwinąć opcję headless chrome wspomnianą w odpowiedzi Dave ' a Hunta.

Chrome 57 właśnie uruchomił tę funkcję. Możesz go użyć, przekazując flagę --headless przez ChromeDriver, aby uzyskać więcej informacji zobacz dyskusję w to pytanie

 1
Author: in016hoe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:20

Istnieje projekt związany z PhantomJS o nazwie GhostDriver , który ma na celu uruchamianie instancji PhantomJS w siatce Selenium przy użyciu protokołu WebDriver wire JSON. To jest prawdopodobnie to, czego szukasz, chociaż to pytanie ma teraz 4 lata.

 0
Author: djangofan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 19:17:02

Na MacOSX nie udało mi się ukryć okna przeglądarki, ale przynajmniej wymyśliłem, jak przenieść je na inny wyświetlacz, aby nie zakłócać tak bardzo mojego przepływu pracy. Podczas gdy Firefox uruchamia testy, po prostu kliknij jego ikonę w Docku, wybierz Opcje i przypisz do wyświetlacza 2.

 0
Author: chetstone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-09 19:43:35
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

Nawiasem mówiąc, jest to funkcja potrzebna każdemu programiście działającemu na e2e, która logicznie spowoduje pojawienie się przeglądarek. W środowisku programistycznym denerwujące jest radzenie sobie z oknem, które ciągle się pojawia i które można przypadkowo wejść w interakcję, co sprawia, że test się nie powiedzie.

 0
Author: Nestor Urquiza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-04 13:32:28