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

Linda Hamilton
Lepaskan: 2024-11-17 05:12:03
asal
150 orang telah melayarinya

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()
Salin selepas log masuk

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()
Salin selepas log masuk

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.
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan