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