问题:
在 Amazon 上运行 Selenium 测试时没有图形用户界面 (GUI) 的 EC2 实例,用户可能会遇到错误:
Error: cannot open display: :0
尽管安装了 Selenium、Firefox 和 Xvfb 等必要的软件包。
解决方案:
要在没有可见显示器的情况下运行 Selenium,PyVirtualDisplay 或 Xvfbwrapper 提供无头解决方案。
PyVirtualDisplay
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() # now Firefox will run in a virtual display. # you will not see the browser. browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() display.stop()
Xvfbwrapper
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() # launch stuff inside virtual display here vdisplay.stop()
或者,为了更清晰的上下文管理,请使用 Xvfbwrapper,如下所示:
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # launch stuff inside virtual display here. # It starts/stops in this code block.
通过使用这些无头解决方案,Selenium 测试可以在没有 GUI 功能的服务器上成功运行,从而使无头环境中的自动化和测试。
以上是如何在无头服务器上运行 Selenium 测试而不会遇到'错误:无法打开显示::0”?的详细内容。更多信息请关注PHP中文网其他相关文章!