首頁 >後端開發 >Python教學 >如何使用 Xvfb 在 EC2 執行個體上無頭執行 Selenium 測試?

如何使用 Xvfb 在 EC2 執行個體上無頭執行 Selenium 測試?

Linda Hamilton
Linda Hamilton原創
2024-11-17 05:12:03215瀏覽

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

Xvfb 中的 Selenium 執行

在沒有 GUI 的 EC2 實例上執行 Selenium 測試需要使用 Xvfb 建立虛擬幀緩衝區。

問題識別:

儘管安裝了Selenium 和Xvfb,但使用Selenium 啟動Firefox 瀏覽器會導致錯誤「無法開啟顯示::0。」

解:利用PyVirtualDisplay

要解決此問題,您可以使用 PyVirtualDisplay, Xvfb 的 Python 包裝器,讓您執行無頭 WebDriver 測試。

這是示範此方法的Python 腳本:

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

其他選項

您也可以使用xfbvwrapper,這是一個不需要外部wrapper的替代模組相依性:

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

# Launch processes within the virtual display here

vdisplay.stop()

或者,為了改進程式碼結構,使用xvfbwrapper 作為上下文管理器:

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # Launch processes within the virtual display within this code block.
    # xvfb starts and stops automatically.

以上是如何使用 Xvfb 在 EC2 執行個體上無頭執行 Selenium 測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn