Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich Selenium Headless mit Xvfb auf Amazon EC2 aus?
Selenium Headless mit Xvfb auf Amazon EC2 ausführen
Sie versuchen, Selenium auf einer Amazon EC2-Instanz auszuführen, auf der keine GUI vorhanden ist. Nachdem Sie die erforderlichen Pakete installiert und Xvfb gestartet haben, tritt beim Ausführen Ihres Codes die Fehlermeldung „Fehler: Anzeige kann nicht geöffnet werden: :0“ auf. Dieser Fehler ist auf das Fehlen einer grafischen Anzeige auf der EC2-Instanz zurückzuführen.
Um dieses Problem zu beheben, sollten Sie die Verwendung von PyVirtualDisplay oder xvfbwrapper in Betracht ziehen, mit denen Sie Selenium in einer virtuellen Anzeigeumgebung starten können. Diese Module erstellen einen Headless-X-Server, sodass WebDriver-Tests ohne physische GUI ausgeführt werden können.
PyVirtualDisplay-Methode
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()
Dieses Codefragment verwendet PyVirtualDisplay, um einen Headless-Server zu initiieren virtuelle Anzeigeumgebung. In dieser Umgebung wird der Firefox-Browser gestartet und navigiert zu einer angegebenen URL. Nach dem Zugriff auf den Seitentitel wird der Browser beendet und die virtuelle Anzeige geschlossen.
Xvfbwrapper-Methode
from xvfbwrapper import Xvfb vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() vdisplay.stop()
Dieser Code verwendet Xvfbwrapper, um eine virtuelle Anzeige zu starten . Ähnlich wie im PyVirtualDisplay-Beispiel wird ein Firefox-Browser innerhalb der virtuellen Anzeige gestartet, Seiten werden besucht und der Browser und die Anzeige werden beendet.
Kontextmanager-Methode
from xvfbwrapper import Xvfb with Xvfb() as xvfb: browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit()
Diese Methode verwendet einen Kontextmanager, um die virtuelle Anzeige automatisch zu starten und zu stoppen. Innerhalb des Kontextblocks wird ein Firefox-Browser gestartet, Seiten werden besucht und der Browser wird geschlossen.
Durch die Übernahme dieser Methoden können Sie Selenium-Headless-Tests nahtlos auf Amazon EC2-Instanzen ohne GUI ausführen und so automatisierte Tests ermöglichen und effiziente Bereitstellung.
Das obige ist der detaillierte Inhalt vonWie führe ich Selenium Headless mit Xvfb auf Amazon EC2 aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!