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

Patricia Arquette
Freigeben: 2024-11-19 02:01:02
Original
637 Leute haben es durchsucht

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

Xvfbwrapper

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

# launch stuff inside virtual display here

vdisplay.stop()
Nach dem Login kopieren

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.
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage