"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como executar o Selenium em ambientes sem cabeça: superando o erro “Não é possível abrir a tela”?

Como executar o Selenium em ambientes sem cabeça: superando o erro “Não é possível abrir a tela”?

Publicado em 19/11/2024
Navegar:902

How to Run Selenium in Headless Environments: Overcoming the

Como executar o Selenium no Xvfb: superando o erro 'Não é possível abrir a tela'

Xvfb (X Virtual Framebuffer) fornece uma exibição virtual que permite a execução de aplicativos gráficos em ambientes headless, como instâncias EC2 que não possuem GUI. Isso é essencial para executar testes do Selenium em servidores sem interface gráfica do usuário.

No entanto, mesmo após instalar o Selenium e o Xvfb, você pode encontrar o "Erro: não é possível abrir a tela: :0" ao tentar executar testes. Isso decorre da dependência do Selenium de uma exibição gráfica para interagir com as páginas da web. , que encapsula o Xvfb como módulos Python. Esses módulos simulam uma exibição virtual, permitindo que o Selenium seja executado em ambientes headless:

Opção 1: PyVirtualDisplay

from pyvirtualdisplay import Display do webdriver de importação de selênio display = Display(visível=0, tamanho=(800, 600)) exibição.start() navegador = webdriver.Firefox() navegador.get('http://www.google.com') imprimir (navegador.título) navegador.quit() display.stop()

Opção 2: Xvfbwrapper

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()

Você também pode utilizar um gerenciador de contexto para simplificar o processo:from xvfbwrapper import Xvfb com Xvfb() como xvfb: # Inicie coisas dentro da exibição virtual aqui. # Ele inicia/para neste bloco de código.

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
print(browser.title)
browser.quit()

vdisplay.stop()
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3