Comment exécuter des tests Selenium sans tête sur des instances EC2 à l'aide de Xvfb ?

Linda Hamilton
Libérer: 2024-11-17 05:12:03
original
145 Les gens l'ont consulté

How to Run Selenium Tests Headlessly on EC2 Instances Using 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()
Copier après la connexion

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()
Copier après la connexion

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.
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal