Comment exécuter Selenium dans Xvfb : surmonter l'erreur « Impossible d'ouvrir l'affichage »
Xvfb (X Virtual Framebuffer) fournit un affichage virtuel qui permet l'exécution d'applications graphiques dans des environnements sans tête, tels que les instances EC2 dépourvues d'interface graphique. Ceci est essentiel pour exécuter des tests Selenium sur des serveurs sans interface utilisateur graphique.
Cependant, même après avoir installé Selenium et Xvfb, vous pouvez rencontrer le message « Erreur : impossible d'ouvrir l'affichage : :0 » lorsque vous tentez d'exécuter des tests. Cela vient du fait que Selenium s'appuie sur un affichage graphique pour interagir avec les pages Web.
Solution : utilisez PyVirtualDisplay ou Xvfbwrapper
Pour résoudre ce problème, vous pouvez utiliser PyVirtualDisplay ou Xvfbwrapper. , qui encapsulent Xvfb en tant que modules Python. Ces modules simulent un affichage virtuel, permettant à Selenium de s'exécuter dans des environnements sans tête :
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()
Vous pouvez également utiliser un gestionnaire de contexte pour simplifier le processus :
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch stuff inside virtual display here. # It starts/stops in this code block.
En utilisant ces modules, vous pouvez exécuter efficacement des tests Selenium sur des serveurs sans tête dépourvus d'interface utilisateur graphique, garantissant ainsi que vos tests peuvent s'exécuter avec succès dans n'importe quel environnement.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3