Maison > Article > développement back-end > Comment exécuter des tests Selenium sans tête sur des instances EC2 à l'aide de Xvfb ?
Exécution de Selenium dans Xvfb
L'exécution de tests Selenium sur une instance EC2 sans interface graphique nécessite l'utilisation de Xvfb pour créer un framebuffer virtuel.
Identification du problème :
Malgré l'installation de Selenium et Xvfb, le lancement d'un navigateur Firefox à l'aide de Selenium entraîne l'erreur "Impossible d'ouvrir l'affichage : 0."
Solution : Utiliser PyVirtualDisplay
Pour résoudre ce problème, vous pouvez utiliser PyVirtualDisplay, un wrapper Python pour Xvfb, qui vous permet d'exécuter des tests WebDriver sans tête.
Voici un script Python qui démontre cette approche :
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() # Now Firefox will operate in a virtual display, making it headless. browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() display.stop()
Options supplémentaires
Vous pouvez également utiliser xvfbwrapper, un module alternatif qui ne nécessite aucune dépendance externe :
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() # Launch processes within the virtual display here vdisplay.stop()
Ou, pour une structure de code améliorée, utilisez xvfbwrapper comme gestionnaire de contexte :
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch processes within the virtual display within this code block. # xvfb starts and stops automatically.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!