Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich Selenium-Tests auf Headless-Servern durch, ohne dass „Fehler: Anzeige kann nicht geöffnet werden: :0' auftritt?

Wie führe ich Selenium-Tests auf Headless-Servern durch, ohne dass „Fehler: Anzeige kann nicht geöffnet werden: :0' auftritt?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 02:01:02638Durchsuche

How to Run Selenium Tests on Headless Servers without Encountering

Ausführen von Selenium in Xvfb: Fehlerbehebung bei Anzeigefehlern auf Headless-Servern

Problem:

Beim Ausführen von Selenium-Tests auf einem Amazon Bei einer EC2-Instanz ohne grafische Benutzeroberfläche (GUI) kann bei Benutzern der Fehler auftreten:

Error: cannot open display: :0

trotz der Installation notwendiger Pakete wie Selenium, Firefox und Xvfb.

Lösung:

Um Selenium ohne sichtbare Anzeige auszuführen, bieten PyVirtualDisplay oder Xvfbwrapper kopflose Lösungen.

PyVirtualDisplay

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

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

display.stop()

Xvfbwrapper

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

# launch stuff inside virtual display here

vdisplay.stop()

Alternativ können Sie für eine sauberere Kontextverwaltung Xvfbwrapper wie folgt verwenden:

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # launch stuff inside virtual display here.
    # It starts/stops in this code block.

Durch die Verwendung dieser Headless-Lösungen können Selenium-Tests erfolgreich auf Servern ohne GUI-Funktionen ausgeführt werden, was dies ermöglicht Automatisierung und Tests in Headless-Umgebungen.

Das obige ist der detaillierte Inhalt vonWie führe ich Selenium-Tests auf Headless-Servern durch, ohne dass „Fehler: Anzeige kann nicht geöffnet werden: :0' auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn