So führen Sie Selenium in Xvfb aus: Den Fehler „Anzeige kann nicht geöffnet werden“ beheben
Xvfb (X Virtual Framebuffer) bietet eine virtuelle Anzeige, die ermöglicht die Ausführung grafischer Anwendungen in Headless-Umgebungen, wie z. B. EC2-Instanzen ohne GUI. Dies ist wichtig für die Ausführung von Selenium-Tests auf Servern ohne grafische Benutzeroberfläche.
Allerdings kann es auch nach der Installation von Selenium und Xvfb beim Versuch, Tests auszuführen, zu der Fehlermeldung „Fehler: Anzeige kann nicht geöffnet werden: :0“ kommen. Dies ist darauf zurückzuführen, dass Selenium bei der Interaktion mit Webseiten auf eine grafische Anzeige angewiesen ist.
Lösung: Verwenden Sie PyVirtualDisplay oder Xvfbwrapper
Um dieses Problem zu beheben, können Sie PyVirtualDisplay oder Xvfbwrapper verwenden , die Xvfb als Python-Module kapseln. Diese Module simulieren eine virtuelle Anzeige, sodass Selenium in Headless-Umgebungen ausgeführt werden kann:
Option 1: PyVirtualDisplay
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() display.stop()
Option 2: Xvfbwrapper
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() vdisplay.stop()
Sie können auch einen Kontextmanager verwenden, um den Prozess zu vereinfachen:
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 Module können Sie Selenium-Tests effektiv auf Headless-Servern ausführen, denen eine grafische Benutzeroberfläche fehlt , um sicherzustellen, dass Ihre Tests in jeder Umgebung erfolgreich ausgeführt werden können.
Das obige ist der detaillierte Inhalt vonSo führen Sie Selenium in Headless-Umgebungen aus: Überwinden Sie den Fehler „Anzeige kann nicht geöffnet werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!