Heim > Backend-Entwicklung > Python-Tutorial > So führen Sie Selenium in Headless-Umgebungen aus: Überwinden Sie den Fehler „Anzeige kann nicht geöffnet werden'?

So führen Sie Selenium in Headless-Umgebungen aus: Überwinden Sie den Fehler „Anzeige kann nicht geöffnet werden'?

Linda Hamilton
Freigeben: 2024-11-15 15:29:03
Original
342 Leute haben es durchsucht

How to Run Selenium in Headless Environments: Overcoming the

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

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

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

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!

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