Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Menjalankan Selenium dalam Persekitaran Tanpa Kepala: Mengatasi Ralat 'Tidak Dapat Membuka Paparan'?

Cara Menjalankan Selenium dalam Persekitaran Tanpa Kepala: Mengatasi Ralat 'Tidak Dapat Membuka Paparan'?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 15:29:03358semak imbas

How to Run Selenium in Headless Environments: Overcoming the

Cara Menjalankan Selenium dalam Xvfb: Mengatasi Ralat 'Tidak Boleh Buka Paparan'

Xvfb (X Virtual Framebuffer) menyediakan paparan maya yang membolehkan pelaksanaan aplikasi grafik dalam persekitaran tanpa kepala, seperti contoh EC2 yang tidak mempunyai GUI. Ini penting untuk menjalankan ujian Selenium pada pelayan tanpa antara muka pengguna grafik.

Walau bagaimanapun, walaupun selepas memasang Selenium dan Xvfb, anda mungkin menghadapi "Ralat: tidak boleh membuka paparan: :0" semasa cuba menjalankan ujian. Ini berpunca daripada pergantungan Selenium pada paparan grafik untuk berinteraksi dengan halaman web.

Penyelesaian: Gunakan PyVirtualDisplay atau Xvfbwrapper

Untuk menyelesaikan isu ini, anda boleh menggunakan PyVirtualDisplay atau Xvfbwrapper , yang merangkum Xvfb sebagai modul Python. Modul ini mensimulasikan paparan maya, membolehkan Selenium berjalan dalam persekitaran tanpa kepala:

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

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

Anda juga boleh menggunakan pengurus konteks untuk mudahkan proses:

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # Launch stuff inside virtual display here.
    # It starts/stops in this code block.

Dengan menggunakan modul ini, anda boleh menjalankan ujian Selenium dengan berkesan pada pelayan tanpa kepala yang tidak mempunyai antara muka pengguna grafik, memastikan ujian anda boleh dilaksanakan dengan jayanya dalam mana-mana persekitaran.

Atas ialah kandungan terperinci Cara Menjalankan Selenium dalam Persekitaran Tanpa Kepala: Mengatasi Ralat 'Tidak Dapat Membuka Paparan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn