如何在Xvfb 中運行Selenium:克服“無法打開顯示”錯誤
Xvfb(X Virtual Framebuffer)提供了一個虛擬顯示,允許在無頭環境中執行圖形應用程序,例如缺少GUI 的EC2 實例。這對於在沒有圖形使用者介面的伺服器上執行 Selenium 測試至關重要。
但是,即使安裝 Selenium 和 Xvfb 後,您在嘗試執行測試時也可能會遇到「錯誤:無法開啟顯示::0」。這源自於 Selenium 依賴圖形顯示與網頁互動。
解決方案:利用 PyVirtualDisplay 或 Xvfbwrapper
要解決此問題,您可以使用 PyVirtualDisplay 或 Xvfbwrapper ,它將 Xvfb 封裝為 Python 模組。這些模組模擬虛擬顯示器,允許 Selenium 在無頭環境中運行:
選項 1: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()
選項 2: Xvfbwrapper
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() vdisplay.stop()
您也可以利用上下文管理器來簡化流程:
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch stuff inside virtual display here. # It starts/stops in this code block.
透過利用這些模組,您可以在缺乏圖形使用者介面的無頭伺服器上有效地運行 Selenium 測試,確保您的測試可以在任何環境中成功執行。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3