Exécuter Selenium Headless à l'aide de Xvfb sur Amazon EC2
Vous essayez d'exécuter Selenium sur une instance Amazon EC2 où aucune interface graphique n'est présente. Après avoir installé les packages nécessaires et lancé Xvfb, vous rencontrez l'erreur "Erreur : impossible d'ouvrir l'affichage : :0" lors de l'exécution de votre code. Cette erreur provient de l'absence d'affichage graphique sur l'instance EC2.
Pour résoudre ce problème, pensez à utiliser PyVirtualDisplay ou xvfbwrapper, qui vous permettent de lancer Selenium dans un environnement d'affichage virtuel. Ces modules créent un serveur X sans tête, permettant aux tests WebDriver de s'exécuter sans interface graphique physique.
Méthode 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()
Cet extrait de code utilise PyVirtualDisplay pour lancer un serveur X sans tête. environnement d'affichage virtuel. Dans cet environnement, le navigateur Firefox est lancé et accède à une URL spécifiée. Après avoir accédé au titre de la page, le navigateur se termine et l'affichage virtuel est fermé.
Méthode Xvfbwrapper
from xvfbwrapper import Xvfb vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() vdisplay.stop()
Ce code utilise Xvfbwrapper pour démarrer un affichage virtuel . De la même manière que dans l'exemple PyVirtualDisplay, un navigateur Firefox est lancé dans l'affichage virtuel, les pages sont visitées et le navigateur et l'affichage sont arrêtés.
Méthode Context Manager
from xvfbwrapper import Xvfb with Xvfb() as xvfb: browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit()
Cette méthode utilise un gestionnaire de contexte pour démarrer et arrêter automatiquement l'affichage virtuel. Dans le bloc contextuel, un navigateur Firefox est lancé, les pages sont visitées et le navigateur est fermé.
En adoptant ces méthodes, vous pouvez exécuter de manière transparente des tests sans tête Selenium sur les instances Amazon EC2 sans interface graphique, permettant ainsi des tests automatisés. et un déploiement efficace.
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!