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?
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!