Pelaksanaan Selenium dalam Xvfb
Menjalankan ujian Selenium pada tika EC2 tanpa GUI memerlukan penggunaan Xvfb untuk mencipta framebuffer maya.
Masalah Pengenalan:
Walaupun memasang Selenium dan Xvfb, melancarkan penyemak imbas Firefox menggunakan Selenium mengakibatkan ralat "tidak boleh membuka paparan: :0."
Penyelesaian: Menggunakan PyVirtualDisplay
Untuk menyelesaikan isu ini, anda boleh menggunakan PyVirtualDisplay, a Pembalut Python untuk Xvfb, yang membolehkan anda menjalankan ujian WebDriver tanpa kepala.
Berikut ialah skrip Python yang menunjukkan pendekatan ini:
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()
Pilihan Tambahan
Anda juga boleh menggunakan xvfbwrapper, modul alternatif yang tidak memerlukan luaran dependencies:
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() # Launch processes within the virtual display here vdisplay.stop()
Atau, untuk struktur kod yang dipertingkatkan, gunakan xvfbwrapper sebagai pengurus konteks:
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch processes within the virtual display within this code block. # xvfb starts and stops automatically.
Atas ialah kandungan terperinci Bagaimana Menjalankan Ujian Selenium Tanpa Kepala pada Kejadian EC2 Menggunakan Xvfb?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!