在 Amazon EC2 上使用 Xvfb 執行 Selenium Headless
您正在嘗試在沒有 GUI 的 Amazon EC2 執行個體上執行 Selenium。安裝必要的軟體包並啟動 Xvfb 後,執行程式碼時遇到錯誤「錯誤:無法開啟顯示::0」。此錯誤源自於 EC2 執行個體上缺少圖形顯示。
要解決此問題,請考慮使用 PyVirtualDisplay 或 xvfbwrapper,它們可讓您在虛擬顯示環境中啟動 Selenium。這些模組會建立一個無頭 X 伺服器,允許 WebDriver 測試在沒有實體 GUI 的情況下運行。
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()
此程式碼片段使用 PyVirtualDisplay 啟動無頭虛擬顯示環境。在此環境中,Firefox 瀏覽器將啟動並導覽至指定的 URL。存取頁面標題後,瀏覽器終止,虛擬顯示關閉。
Xvfbwrapper 方法
from xvfbwrapper import Xvfb vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() vdisplay.stop()
此程式碼使用 Xvfbwrapper 啟動虛擬顯示。與 PyVirtualDisplay 範例類似,在虛擬顯示器中啟動 Firefox 瀏覽器,存取頁面,然後終止瀏覽器和顯示器。
上下文管理器方法
from xvfbwrapper import Xvfb with Xvfb() as xvfb: browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit()
此方法使用上下文管理器自動啟動和停止虛擬顯示。在上下文區塊內,啟動 Firefox 瀏覽器,造訪頁面,然後關閉瀏覽器。
透過採用這些方法,您可以在沒有 GUI 的情況下在 Amazon EC2 執行個體上無縫執行 Selenium 無頭測試,從而實現自動化測試以及高效的部署。
以上是如何在 Amazon EC2 上使用 Xvfb 來執行 Selenium Headless?的詳細內容。更多資訊請關注PHP中文網其他相關文章!