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中文網其他相關文章!