Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Menjalankan Ujian Selenium Tanpa Kepala pada Kejadian EC2 Menggunakan Xvfb?

Bagaimana Menjalankan Ujian Selenium Tanpa Kepala pada Kejadian EC2 Menggunakan Xvfb?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 05:12:03215semak imbas

How to Run Selenium Tests Headlessly on EC2 Instances Using Xvfb?

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!

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