Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Menjalankan Selenium dalam Persekitaran Tanpa Kepala: Mengatasi Ralat 'Tidak Dapat Membuka Paparan'?
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!